php 短路逻辑运算符( ||和&& )

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

短路与 &&

运算方法:

     只要“&&”前面是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) 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值