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();

检查一个常量是否定义过,如果没有定义那么就定义一个常量。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值