php短路与 短路或
2024-10-18 13:55:15
关于php短路的问题特性,三种写法的区别
$a = 1;
$b=0;
第一种: $a && $b = 'cccccccc';
第二种 $a || $b = 'cccccccc';
第三种 if($a && $b){
$b = 'cccccccc';
}
echo $b;
谁能说说这个呢?怎么理解呢?
$b=0;
第一种: $a && $b = 'cccccccc';
第二种 $a || $b = 'cccccccc';
第三种 if($a && $b){
$b = 'cccccccc';
}
echo $b;
谁能说说这个呢?怎么理解呢?
最佳答案
php中=是赋值, 在if中要判断条件是要用==的
第一种: if($a && $b = 'cccccccc'), 首先判断$a是不是true?返回true, 并且 $b = 'cccccccc'(这其实是赋值,不是判断),也返回true, 所以整个if返回是true, $b = 'cccccccc' 第二种 if($a || $b = 'cccccccc') 2个条是或的关系, 那么首先判断$a是不是true?返回true, 那么直接if返回的就是true, $b = 'cccccccc'这个根本就没有执行, $b=0 第三种 if($a && $b) 首先判断$a是不是true?结果是true; 然后判断$b是不是true?结果是false, 那么if的结果就是false, if的语句不执行. $b=0 在php运行的结果就是:
$a = 1; $b=0;
if($a && $b = 'cccccccc') echo $b; //返回cccccccc $a = 1; $b=0;
if($a || $b = 'cccccccc') echo $b; //返回0 $a = 1;$b=0;
if($a && $b){ $b = 'cccccccc';}
echo $b; //返回0
其他回答
关于优先级:"||"和"&&"大于"="
所以第一种是先计算$a&&$b 再算赋值
第二种是先$a||$b 但是||符号只要有一个成立就全部成立了,所以当$a不等于0 ,后面的就不会再进行运算了(因为后面无论是否运算都整个值都是成立的)。
第三种是判断,if内是不成立的,所以b的赋值也不会进行。
结果依次为 cccccccc 0 0
所以第一种是先计算$a&&$b 再算赋值
第二种是先$a||$b 但是||符号只要有一个成立就全部成立了,所以当$a不等于0 ,后面的就不会再进行运算了(因为后面无论是否运算都整个值都是成立的)。
第三种是判断,if内是不成立的,所以b的赋值也不会进行。
结果依次为 cccccccc 0 0
最新文章
- How to implement equals() and hashCode() methods in Java[reproduced]
- JNDI
- AR For Unity3D之HiAR分析
- VTK初学一,比较常见的错误1
- sp_who使用
- c# 高效率导出多维表头excel
- iis设置Gzip后,无后缀的url无法压缩解决 MVC iis GZIP
- 如何使用Fiddler调试线上JS代码
- webservice发布接口
- ./configure详解
- Cocos2d-x 3.2 大富翁游戏项目开发-第七部分 获取角色路径_3
- [Unity3D]Unity3D持久性数据的游戏开发PlayerPrefs采用
- jQuery学习笔记(一)--jQuery对象与DOM对象相互转换
- [POJ] 1562 Oil Deposits (DFS)
- 数据存储之HTTP Cookie
- Jmeter二次开发代码(3)
- mac上安装iterm2的一些步骤记录
- Redis托管Session
- [NOI1999] 棋盘分割
- bzoj 1879 容斥