🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
常见逻辑运算符 * `$a and $b`,逻辑与,如果a 和a和b 都为 TRUE * `$a && $b`,逻辑与,如果a 和a和b 都为 TRUE,其中`&&`优先级高于`and` * `$a or $b`,逻辑或,如果a 或a或b 任一为 TRUE * `$a || $b`,逻辑或,如果a 或a或b 任一为 TRUE,`||`优先级高于`or` * `$a xor $b`,逻辑异或,如果a 或a或b 任一为 TRUE,但不同时是,则返回 TRUE * `! $a`,逻辑非,如果$a 不为 TRUE 编辑`/home/project/logical.php` ~~~php <?php $a = (false && foo()); $b = (true || foo()); $c = (false and foo()); $d = (true or foo()); var_dump($a, $b, $c, $d); $e = false || true; $f = false or true; $g = true && false; $h = true and false; var_dump($e, $f, $g, $h); ~~~ 执行 ~~~bash php logical.php ~~~ 从结果可知 * `foo()`虽然没有定义,但是并没有机会执行,因为之前的表达式已经确定结果,`foo()`被短路。 * `&&`,`||`的优先级高于`=`,`=`的优先级高于`and`,`or`。