我有这个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中,
赋值表达式的值是分配的值。
(Qazxswpoi)
所以在这种情况下,表达式quoted from the =
documentation具有所分配的值,($href = $a)
的值。该字符串的计算结果为真(见“'has a value'
”),所以第二个任务将不会被执行。
仅供参考,另一种方式来写这个,这是一个少一些重复的,你可以这样做:
converting to boolean