逻辑与或短路

||、&& 都是短路运算符

短路与 &&

运算方法:

 只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;

        $g = false&& true; // $g 被赋值为 (false && true),结果为 true

    

 只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;

      $g = true && false; // $g 被赋值为 (true && false),结果为 false 

总结:假前真后
短路或 ||

运算方法:

 只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。

     $g = false || true; // $g 被赋值为 (false || true),结果为 true

 只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。

      $g = true || false; // $g 被赋值为 (false || true),结果为 true

总结:真前假后
拓展 and 和 or(主要还是看运算符的优先级)

<?php
// 下面的 foo() 不会被调用,因为它们被运算符“短路”了。
$a = (false && foo());
$b = (true || foo());
$c = (false and foo());
$d = (true or foo());
// "||" 的优先级比 "or" 高
$e = false || true; // $e 被赋值为 (false || true),结果为 true
$f = false or true; // $f 被赋值为 false [Altair注:"=" 的优先级比 "or" 高]
var_dump($e, $f);
// "&&" 的优先级比 "and" 高
$g = true && false; // $g 被赋值为 (true && false),结果为 false
$h = true and false; // $h 被赋值为 true [Altair注:"=" 的优先级比 "and" 高]
var_dump($g, $h);
?> 

上例的输出类似于:

bool(true)
bool(false)
bool(false)
bool(true) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值