在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