检查变量值相反的方式?

问题描述 投票:0回答:1

我有这个PHP的声明,如果我想firgure出来。我知道结果是什么,但我还没有看到此之前(可能是我的坏)。谁可以帮我了解下面的代码?为什么$a的表现,而不是$b?因为$a是排在第一位?

<?php
$a = 'has a value';
$b = 'this one too!';
if (($href = $a) || ($href = $b)) { 
    echo $href;
    //Result is 'has a value'.  
}
?>
php variables if-statement conditional
1个回答
4
投票

||使用“短路”的评价。如果表达式的第一部分为真,则所述第二部分将不进行评估。在PHP中,

赋值表达式的值是分配的值。

(Qazxswpoi)

所以在这种情况下,表达式quoted from the = documentation具有所分配的值,($href = $a)的值。该字符串的计算结果为真(见“'has a value'”),所以第二个任务将不会被执行。


仅供参考,另一种方式来写这个,这是一个少一些重复的,你可以这样做:

converting to boolean
© www.soinside.com 2019 - 2024. All rights reserved.