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

PHP更短的三元运算符?:

高老师6年前 (2020-10-31)PHP1378

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 soap 捕获异常,使用try catch 捕获Soap 异常

php soap 捕获异常,使用try catch 捕获Soap 异常

项目中使用服务来执行webservice,由于对方系统api不稳定,经常导致服务崩溃,只能重启,一个月差不多要重启一次。初期的解决办法是捕获异常,然后continue掉。<?php try {     $url = 'http...

PHP获取站点根目录,PHP获取应用根目录,cgi和cli都支持

PHP获取站点根目录,PHP获取应用根目录,cgi和cli都支持

重构框架的时候想要考虑支持下cli模式,于是参考了thinkphp的底层。/**  * 获取应用根目录  * @return string  */ public static function getRootP...

redis订阅和发布,redis消息订阅与发布, phpredis订阅和发布

redis订阅和发布,redis消息订阅与发布, phpredis订阅和发布

Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者(publisher),订阅者(subscriber)和频道(channel)。 发布者和订阅者都是Redis客户端,Channel则为Redis服务器端,发布者将消息发送到某个的频道,订阅了这个...

PHP yield  PHP协程,PHP协程用法学习

PHP yield PHP协程,PHP协程用法学习

【一】.迭代器迭代是指反复执行一个过程,每执行一次叫做一次迭代。比如下面的代码就叫做迭代:1.  <?php   2.  $data = ['1', '2', &...

 php命令行中文乱码,php cli中文乱码

php命令行中文乱码,php cli中文乱码

<?php //如果支持exec函数,可以使用的方式 exec('chcp 65001'); //如果exec函数因安全问题禁用,可以使用的方式 pclose(popen('chcp 65001', 'r'));...

php redis事务

php redis事务

概念请参考w3school文章: redis watch ,redis exec (看完基本秒懂)(1)基本事务://连接本地的 Redis 服务 $redis = new Redis(); $redis->con...