前段时间JackMa问我“defined(’HW_TRACKING’) or define(’HW_TRACKING’, false); ”是什么语法,当时想起以前看到的一篇js里And跟Or的特殊用法《And and Or in JS》,即

$c || b//如果 Boolean(a) == true 结果为a,否则为b
$c && b//如果 Boolean(a) == true 结果为b,否则为a  

在php中虽然不能直接这样用,但是可以用此来简化一些判断语句,如

$a || $c $b或者 $a or $c $b//如果Boolean($a) == false 则执行后面的$c = $b
$a && $c $b或者 $a and $c $b//如果Boolean($a) == true 则执行后面的$c = $b  

比如简化这个常见的判断语句:$a = $a > 1 ? $a : 1; 可以写成: $a > 1 || $a = 1;

以前没见过,可能是我火星了,不过用起来挺方便,就是可读性差了点。