首页 > 编程语言 >PHP 中的三元运算符和or表达式对比[defined() or define()]

PHP 中的三元运算符和or表达式对比[defined() or define()]

时间:2022-08-28 16:44:45浏览次数:66  
标签:函数 defined max 运算符 PHP 表达式 运算

在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

标签:函数,defined,max,运算符,PHP,表达式,运算
From: https://www.cnblogs.com/jmbt/p/16633039.html

相关文章