Loading... ## 1、逻辑运算符:逻辑与(&&)和逻辑或(||),存在着短路特性 PHP中有以下两个运算符具有短路的特性,他们是逻辑运算符的逻辑与(&&)和逻辑或(||),存在着短路这一特性。 ### 逻辑或,一真为真,假假为假(一真返回,全假跳过不返回) ```php $a = 1; $flag = ($a == 1 || $c = 100); echo '$c的值:'.$c.' $flag的值:'.$flag; //输出 $c的值: $flag的值:1(true隐式转换为字符串1) ``` > 逻辑或的运算结果是运算符(||)的两边 **只要有一个为真,结果就返回“真”后就不再执行其它表达式** ,所以在这个语句里已经判断到$a的返回值是“真”,就不再执行给$c赋值,这样就形成了一个短路现象,所以后面的输出语句不输出内容。 > ### 逻辑与,真真为真,一假为假(全真返回,一假跳过不返回) ```php $a = 1; $flag = ($a == 2 && $c=100); echo '$c的值:'.$c.' $flag的值:'.$flag; //输出 $c的值: $flag的值:(flase隐式转换为空字符串) ``` > 逻辑与的运算符(&&),逻辑与的运算方式是运算符的 **两边表达式都为“真”才会继续执行其他语句而直接返回一个“假”值,所以这条语句也将不执行$c的赋值。** ## 2、按位运算符:按位与(&)和按位或(|),不存在短路特性 按位运算符:按位与(&)和按位或(|),这两个运算符不存在短路特性,虽然它们的运算方式和逻辑与及逻辑或的运算方式相似,但他们没有存在短路现象,因为 **按位与它是参加运算的表达式的同位运算都为1时才返回1否则返回0,按位或是同位运算不相同时返回1否则返回0。** ### 按位或,同位运算不相同时返回1否则返回0(按位的“位”是二进制) ```php $a = 1; $flag1 = ($a == 1 | $c = 100); // 1 | 110 0100 = 110 0101 echo '$c的值:'.$c.' $flag1的值:'.$flag1; //输出 $c的值:100 $flag1的值:101 ``` ### 按位与,同位运算都为1时才返回1否则返回0(按位的“位”是二进制) ```php $a = 1; $flag1 = ($a == 1 & $c = 100); // 1 & 110 0100 = 0 $flag2 = ($a == 2 & $c = 100); // 0 & 110 0100 = 0 $flag3 = (1 & 1); // 1 & 1 = 1 $flag4 = (12 & 12); // 110 0110 & 110 0110 = 110 0110 $flag5 = (12 & 13); // 110 0110 & 110 0111 = 110 0110 $flag6 = (13 & 12); // 110 0111 & 110 0110 = 110 0110 echo '$c的值:'.$c.' $flag1的值:'.$flag1.' $flag2的值:'.$flag2.' $flag3的值:'.$flag3.' $flag4的值:'.$flag4.' $flag5的值:'.$flag5.' $flag6的值:'.$flag6; //输出 $c的值:100 $flag1的值:0 $flag2的值:0 $flag3的值:1 $flag4的值:12 $flag5的值:12 $flag6的值:12 ``` ## 3、短路特性在判断语句中的应用 由于有了运算符的短路特性,我们可以 **利用这一特性来编写一些判断语句,这样可以增加了程序的灵活性** ,例如我们可以使用在 **打开一个文件时进行判断** : ```php $file = fopen('a.txt','r') or die('文件不存在。'); //或者 --> https://tool.lu/coderunner/ $file = fopen('/code/main.php','r') || die('文件不存在。'); ``` > 通过这样设置了逻辑或运算符短路,这样就可以完成判断一个文件是否存在。die()命令是结束整个文件的执行,如果 **程序运行到有die()时就结束了程序的运行** ,不再去执行该页面里的其他代码,输出错误提示。 最后修改:2023 年 11 月 10 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏
1 条评论
《遥遥乡愁》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/120004.html