PHP 中的三元运算符和or表达式对比[defined() or define()]
在php代码中我们经常看到这样的写法:
$max = $a>$b ? $a : $b;
mysql_connect($user,$passwd,$db) or die($mess);
下面对这两种常见的写法做以下说明:
第一种:典型的三元运算符形式
表达式的值成了,那么$max 的值是$a 否则$max 的值是$b,也就是说$max 的取值要么是$a 要么是$b,需要满足这样的情况
第二种:or 逻辑或运算
因为在PHP中并不区分数据类型,而且存在数据类型自动转换,所以在执行的时候会转换成bool值,并且or逻辑运算中会存在逻辑短路问题,刚好可以这样解释:
当or前面的表达式返还布尔值true的时候,or后面的表达式不再执行,但是当or前面的表达式返还false的时候,or后面的表达式要执行的。
之所以 用 or 可以达到,是因为当函数错误后,能执行or后面的函数,这是因为下面三点原因:
1.逻辑运算的运算顺序是从左向右
2.or运算符的左结合性
3.or运算中,如果运算时有值为真了,则整个表达式为真,后面不需要运算
终合上面三个因素,当or左侧函数运行正常(返回非假值),则不会执行后面的函数
这里利用了or的这个特性,将die(终止并输出函数)用于此处,巧妙的实现了函数异常而报错的功能
常见的使用or的还有下面的这个
defined() or define();
检查一个常量是否定义过,如果没有定义那么就定义一个常量。
————————————————
版权声明:本文为CSDN博主「卢凯文」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kevinlou2008/article/details/20471097
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!