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

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

今天我发现了PHP三元运算符的一个小小的用法. 这给我干涸的大脑一点乐趣!       https://blog.csdn.net/imvkmark/article/details/43913091

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

<?php
if (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 中介绍了一个更简洁的使用三元运算符的语法. 你可以从手册中学到, 但是这里我们怎么样让上边的例子更简洁呢:

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

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

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

转换成:

<?php
$value .= $other_value;

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113087.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • windows下使用tail命令

    windows下使用tail命令tail命令为linux下的常用查看日志命令,可惜在windows下没有,还好有好心人开发了一个可以在Windows下的运行的小工具,来给分享一下:链接:https://pan.baidu.com/s/1-LiogYgYcAEbZUstdEZURg密码:1w6p使用方法:下载后解压,将tail.exe复制到目录:C:\Windows\System32下即可在cmd里使用…

    2022年6月4日
    66
  • Python str join方法:拼接字符串「建议收藏」

    Python str join方法:拼接字符串「建议收藏」Python字符串方法join()介绍、使用和注意事项。

    2022年4月29日
    50
  • NOIP2012 疫情控制[通俗易懂]

    NOIP2012 疫情控制[通俗易懂]也许更好的阅读体验Description\mathcal{Description}Description原题链接一句话题意一个人可以堵住一个子树,不能一次堵住整棵树,求堵住每个通往叶子节点的路径,走的最远的那个人走的路程最少是多少,若不能堵住输出−1-1−1Solution\mathcal{Solution}Solution看了下其他题解,都说很毒瘤最开始我也认为很毒瘤就是在决…

    2022年8月22日
    7
  • 【转载】HTTP和SOAP完全就是两个不同的协议

    【转载】HTTP和SOAP完全就是两个不同的协议

    2021年11月18日
    46
  • 国外的大龄程序员在干什么工作_为什么程序员年龄大了没人要

    国外的大龄程序员在干什么工作_为什么程序员年龄大了没人要在Quora有个帖子:我今年35岁了,是不是太老了,没法加入Google,Facebook,Microsoft或者Apple了?下面的回复让人叹为观止,我摘录几个:萨特南·辛格Google软件工程师(2017–present)不,我在51岁的时候加入了Google,我们团队还有几个比我年长的人!他们都是非常卓越的软件工程师,一生都在编程,并且获得了被认为非…

    2025年11月8日
    4
  • js判断元素在不在数组中_js判断数组是否为空

    js判断元素在不在数组中_js判断数组是否为空1.indexOf方法letarr=[2,3,4];letres=arr.indexOf(2)//验证是否包含:2console.log(res)//结果:0letres2=arr.indexOf(3)//验证是否包含:3console.log(res2)//结果:1letres3=arr.indexOf(4)//验证是否包含:4console.log(res3)//结果:2letres4=arr.indexOf(5)//验证

    2022年8月30日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号