当前位置:首页 > PHP > 正文内容

PHP更短的三元运算符?:

高老师5年前 (2020-10-31)PHP1214

PHP的三元运算符通常在简洁与清晰度之间起关键作用。简要回顾:PHP三元运算符使您可以编写单行比较,从而替换如下代码:

<?phpif (isset($value)) {
    $output = $value;} else {
    $output = 'No value set.';}

有了这个:

<?php$output = isset($value) ? $value : 'No value set.';

第二个代码示例显然更简单,并且在许多情况下(尽管当然不是全部),它仍然保留了足够的清晰度以成为有价值的工具。关于三元运算符是否以牺牲简洁为代价而牺牲了清晰度,存在很多争论。我们只说它是一种工具,并且像其他任何工具一样,它可以被很好地使用或不好使用。

常规三元运算符的语法为(expression) ? value if truthy : value if falsy表达式也可以只是一个变量,它将测试该变量是真还是假:

<?php$output = $value ? $value : 'No value set.';

问题是,上面的示例既常见令人讨厌,重复出现:不得不写$value两次这样的感觉简直是错。

好吧,我今天发现,PHP 5.3为此三元运算符的使用引入了偶数语法您可以在docs上了解更多信息,但这是我们可以使以上示例更加简洁的方法:

<?php$output = $value ?: 'No value set.';

如果这看起来很熟悉,那是因为:这正是PHP缩短其他运算符的方式,例如缩短了它:

<?php$value = $value . $other_value;

对此:

<?php$value .= $other_value;

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/181.html

分享给朋友:

“PHP更短的三元运算符?:” 的相关文章

PHP二维数组排序,PHP多维数组排序, array_multisort()

PHP二维数组排序,PHP多维数组排序, array_multisort()

使用php函数array_multisort()即可实现和SQL一样的order by排序. 例如我们需要对会员表按照主键降序排列,年龄升序排列://会员表数据 $list = []; $list[] = ['mid' =>&n...

php守护进程

php守护进程

<?php /**  * daemonize让当前脚本为守护进程执行  * @param string $callback 匿名函数  */ function daemonize($callback) {...

php jsonp转json,php jsonp转数组,php jsonp转对象

php jsonp转json,php jsonp转数组,php jsonp转对象

将jsonp转为PHP数组和对象。/**  * jsonp转数组|Jsonp转json  * @param string $jsonp jsonp字符串  * @param bool $as...

php生成器的send方法详解,php yield send

php生成器的send方法详解,php yield send

【一】.基本用法首先看看官方对send方法的解释:Sets the return value of the yield expression and resumes the generato...

php管道通信

php管道通信

(1).管道是干嘛的?管道是用于进程之间通信的,传播或交换信息(2).管道有几种?(2.1).匿名管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。通常是指父子进程关系。(2.2).高级管道(popen):将另一个程序当做一个新的进程在当前程序进程中...

thinkphp3定时任务,tp定时任务,thinkphp定时任务

thinkphp3定时任务,tp定时任务,thinkphp定时任务

本教程使用的定时任务基于EasyTak,EasyTask官方文档:https://gitee.com/392223903/EasyTask由于tp3.2.x官方开发未考虑命令行支持和绝对路径开发的标准,因此我编写了一个支持的类来运行。1.在tp3.2.3根目录下安装easytaskcomposer&...