资讯专栏INFORMATION COLUMN

PHP短路运算符

sshe / 3189人阅读

摘要:事实上,计算机为了节省资源,采取了短路运算的方式解释这个逻辑表达式。短路运算的精髓就是逻辑与检查运算符第一个表达式是否为,如果直接返回,后续的表达式直接忽略。

先看一段代码
$a = 5; $b = 20;
if ($a = 10 || $b = 7) {
    $a++;
    $b++;
}
echo $a,"
","",$b; //1 21

刚开始接触可能一眼看过去很容易说出最后的输出是5 20 但是仔细看后()里的条件表达式是赋值操作,所以应该输出11 21.但是计算机和我们开了一个并不好笑的玩笑。她妹的,最后竟然输出的是1 21

  

计算机的思路和人脑的思路是有区别的,在编程的时候必须了解计算机的思维模式:机械式的思维模式。我们人在判断这个逻辑表达式的时候会跳跃性的先对$a$b赋值,然后再做与运算,这样做虽然不影响逻辑运算的结果,但是也会产生上面这种副作用。事实上,计算机为了节省资源,采取了短路运算的方式解释这个逻辑表达式。当他发现与运算符的前一个数值(例如$a)是false时,他就会判断这个与运算表达式的运算结果是false,然后跳出这个逻辑运算表达式,继续执行下面的程序,而不会执行表达式剩下的语句。

至于这里为什么$a的值是1? 是因为在条件表达式的时候$a = 10的操作的时候php会把$a转换成boolean。上面的例子中$a = 10即转换成了true.所以在{}中的$a++ 是不能进行加法运算的。但是如果花括号中的$a++换成$a = $a + 1 那么此时就可以进行数值运算了。

  

短路运算的精髓就是
逻辑与(&&)->检查运算符第一个表达式是否为false,如果false直接返回false,后续的表达式直接忽略。
逻辑或(||)->检查运算符第一个表达式是否为true,如果是true直接返回true,后续表达式直接忽略。
PS:&&的优先级高于and、||的优先级高于or、等号(=)的优先级高于andor

补充
php

//以上例程的输出类似于:
bool(true)
bool(false)
bool(false)
bool(true)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20985.html

相关文章

  • 后端知识点总结——PHP

    摘要:后端知识点总结服务器服务器的作用接收客户端的请求,查找需要的数据文件数据库其它系统,发送回客户端。注意默认情况下,若判定了某个相等条件则执行该条件以及后续所有条件中的执行语句必须配合关键字使用。 后端知识点总结——PHP 1.Web服务器 Web服务器的作用:接收客户端(PC/PAD/PHONE)的请求,查找需要的数据(文件/数据库/其它系统),发送回客户端。 Web服务器分为两种:...

    Astrian 评论0 收藏0
  • 后端知识点总结——PHP

    摘要:后端知识点总结服务器服务器的作用接收客户端的请求,查找需要的数据文件数据库其它系统,发送回客户端。注意默认情况下,若判定了某个相等条件则执行该条件以及后续所有条件中的执行语句必须配合关键字使用。 后端知识点总结——PHP 1.Web服务器 Web服务器的作用:接收客户端(PC/PAD/PHONE)的请求,查找需要的数据(文件/数据库/其它系统),发送回客户端。 Web服务器分为两种:...

    Allen 评论0 收藏0
  • php易错笔记-变量,常量,算符

    摘要:与变量不同,常量不存在可变常量,如果常量名是动态的,也可以用函数来获取常量的值。执行运算符命令反引号。递增递减运算符不影响布尔值。递增递减其他字符变量则无效,原字符串没有变化。不允许用来检测常量。 变量 基本 引用赋值 global 关键字 以下结果在命令行中有效,网页php中请不要尝试。。。都是坑。Example #1 使用 global或$GLOBALS 以下为网页ph...

    Bamboy 评论0 收藏0
  • 《javascript高级程序设计》笔记:短路运算

    在逻辑运算中,转换为boolean类型的值后为false的情况: 0、、null、false、undefined、NaN,其他都为true。 短路运算是利用逻辑运算中的 && 和 || 操作符,对应的有两种不同的短路运算类型 || 短路运算 仅当前者不成立时才去执行后者 原理:||先计算第一个运算数,如果可以被转换成true,则返回左边这个表达式的值,否则计算第二个运算数。即使||运算符的运算数...

    Vicky 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<