php可关于&&及||的非正常用法

$a && $b=10;
当$a为真是才执行$b=10;
$a || $b=10
当$a为假是才执行$b=10;







PHP中&&和and都是逻辑运算符,且功能也是完全一样的。如果你不了解它俩的区别,你可能会留下很不容易发现的BUG。仔细看下面的代码片段(注释是执行结果):

<?php

$true= TRUE;

$false= FALSE;



$rt1= $true && $false; //$rt1:FALSE

$rt2= $true and $false; //$rt2:TRUE



var_dump($rt1); //FALSE

var_dump($rt2); //TRUE



var_dump($true && $false); //FALSE

var_dump($true and $false); //FALSE

这里最让人感到奇怪的就是为什么$rt1成了FALSE,而$rt2却是TRUE。其实这是PHP优先级在作怪。从文档中我们看到,赋值符号”=”的优先级低于逻辑与符号 "&&”,但高于逻辑与符号 "and”(也就是&& > = > and)。也就是说:

$rt1= $true && $false;

$rt2= $true and $false;

在PHP看来其实是:

$rt1= ($true && $false);

($rt2= $true) and $false;

这样就容易解释为什么会有那样的结果了。那现在你知道下面两句的结果了吗?

var_dump($rt1 = $true && $false);

var_dump($rt2 = $true and $false);

  

转载于:https://www.cnblogs.com/amit/articles/4632107.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值