2012-01-13 92 views

回答

6

=具有比and更高的优先级。因此$c = $a and $b;($c = $a) and $b;相同,$ a的值被分配给$ c。这与&&不同,它具有比=更高的优先级,所以$c = $a && $b评估为$c = ($a && $b);

+0

我刚才发现我自己。这似乎很奇怪,但。它在许多其他语言中是否像这样?我不记得它在其他地方。 – Jakob 2012-01-13 23:49:50

+0

我不记得在其他语言中看到它。它可以用作''c = $ a和$ b'中的短路,$ b仅在$ c = $ a为真时才计算。我个人试图避免这样的东西,但它很常见'$ res = mysql_query(...)或die(mysql_error)' – a1ex07 2012-01-13 23:57:41

1
$c = ($a && $b); // will fix the problem