资讯专栏INFORMATION COLUMN

[译] php 中更简洁的三元运算符 ?:

maxmin / 1637人阅读

摘要:原文地址今天我发现了三元运算符的一个小小的用法这给我干涸的大脑一点乐趣三元运算符是对参数赋值时候的一个简洁的主要用法一个主要的用法三元运算符能够让你在一行代码中描述判定代码从而替换掉类似以下的代码使用以下代码替代第二个代码例子是非常简洁的用

原文地址 Even shorter ternary operators in PHP using ?:

今天我发现了PHP三元运算符的一个小小的用法. 这给我干涸的大脑一点乐趣!

PHP 三元运算符是对参数赋值时候的一个简洁的主要用法. 一个主要的用法: PHP 三元运算符能够让你在一行代码中描述判定代码, 从而替换掉类似以下的代码:

if (isset($value)) { 
    $output = $value;
} else { 
    $output = "No value set.";
}

使用以下代码替代:

$output = isset($value) ? $value : "No value set.";

第二个代码例子是非常简洁的用法, 在多种情况下(并非所有), 这是一个非常实用的用法. 有许多关于是否应该使用三元运算符的争辩;让我说, 这就是一个工具, 向其他工具一样, 只是用的正确与否.

常用的语法是 (expression) ? value if truthy : value if falsy.这个表达式可以是一个变量, 测试这个变量是真还是假:

$output = $value ? $value : "No value set.";

问题是: 以上的例子很常用同时也重复的有些烦人: 写两次 $value 就像是感到错误一样.

好在是, 我今天发现在PHP 5.3中介绍了一个更简洁的使用三元运算符的语法. 你可以从手册中学到, 但是这里我们怎么样让上边的例子更简洁呢:

$output = $value ?: "No value set.";

这个看起来很熟悉, 这个是因为很像其他的简写运算符:

$value = $value . $other_value;

转换成:

$value .= $other_value;

为了更简洁, 这个意味着我们可以这样简写并不意味着我们就应该这么写. 但是, 当我们写简洁代码的时候, 这种方式会看起来更清楚, 我们应该这么写, (并且这个特性允许我们在多种情况下使用这个运算符[this feature allows us to DRY up the ternary operator in many cases])

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25733.html

相关文章

  • 】11 种在大多数教程中找不到JavaScript技巧

    摘要:否则,将返回空数组的长度。该提案目前处于第阶段,作为一项实验性功能。转换为布尔值除了常规的布尔值和之外,还将所有其他值视为或。这也可以用于将布尔值转换为数字,如下所示在某些上下文中,将被解释为连接操作符,而不是加法操作符。 译者:前端小智 原文:medium.com/@bretcamero… 当我开始学习JavaScript时,我把我在别人的代码、code challenge网站以及我使用...

    EastWoodYang 评论0 收藏0
  • 】Python优雅技巧

    摘要:你可以进行如下操作需要注意的是这个窍门只适用于。在中就不需要进行操作了,因为它已经默认进行了。这里有几个例子可以供你参考译文出处本文根据的所译,整个译文带有我自己的理解与思想,如果译得不好或有不对之处还请同行朋友指点。 枚举 不要这么做: i = 0 for item in iterable: print i, item i += 1 而是这样: for...

    legendaryedu 评论0 收藏0
  • 如何在ES5与ES6环境下处理函数默认参数

    摘要:函数默认值是一个很提高鲁棒性的东西就是让程序更健壮关于函数默认参数的描述函数默认参数允许在没有值或被传入时使用默认形参。也就实现了上边三元运算符的功能。直接使用这种方式,省去了在函数内部进行默认值的检查,能够让函数专注的做它应该做的事情。 函数默认值是一个很提高鲁棒性的东西(就是让程序更健壮)MDN关于函数默认参数的描述:函数默认参数允许在没有值或undefined被传入时使用默认形参...

    oliverhuang 评论0 收藏0
  • How to handle Null Pointer Exception(

    摘要:我们应该考虑使用字符串常量调用方法来代替使用对象调用该方法。然而如果我们通过字符串常量来调用方法,执行流程会正常进行检查方法的参数在执行方法的方法体之前,务必对方法的参数进行值检查。 原文地址作者 Sotirios-Efstathios (Stathis) Maneas译者 smallcloverThanks for your watching! java.lang.NullPoine...

    MRZYD 评论0 收藏0
  • 两行代码给 PHP7 添加一个“非空合并”语法糖

    摘要:添加了一个合并操作符,用于简化的条件判断它相当于仅仅是判断,在为等值时还是会返回的值还是为。 我们知道从 PHP 5.3 起三元运算符 ? : 有一个写法简洁写法是这样的:

    zhangyucha0 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<