三元运算符是软件编程中的一个固定格式,语法是“条件表达式? 表达式1:表达式2”。条件表达式成立,就是1的的值,反之,则是2的值

<?php
$action = (empty($_POST['action'])) ? 'default' : $_POST['action']
?>

相当于

<?php
if (empty($_POST['action'])) {$action = 'default';
} else {$action = $_POST['action'];
}
?>

不清晰的表达式:

<?php
// 乍看起来下面的输出是 'true'
echo (true?'true':false?'t':'f');
// 然而,上面语句的实际输出是't',因为三元运算符是从左往右计算的
// 下面是与上面等价的语句,但更清晰
echo ((true ? 'true' : 'false') ? 't' : 'f');//这里,你可以看到第一个表达式被评估为'true',这个
//反过来评估为(bool)true,从而返回真正的分支
//第二个三元表达式
?>

堆叠三元运算符,唯一原则从左到右依次

<?php
echo 0 ?: 1 ?: 2 ?: 3; //1
echo 1 ?: 0 ?: 3 ?: 2; //1
echo 2 ?: 1 ?: 0 ?: 3; //2
echo 3 ?: 2 ?: 1 ?: 0; //3echo 0 ?: 1 ?: 2 ?: 3; //1
echo 0 ?: 0 ?: 2 ?: 3; //2
echo 0 ?: 0 ?: 0 ?: 3; //3
?>

关于省略?:相当于

<?php
$some_variable ?: 'default_value';
//等价于
(isset($some_variable) && $some_variable) ? $some_variable : 'default_value';
?>

参考原文地址

作者:WMSmile
链接:https://www.jianshu.com/p/c64737314ba9
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

php 三元运算(?:)详解相关推荐

  1. java三元运算详解

    运算符 2.1 运算符概念 运算符是用来计算数据的指令.数据可以是常量,也可以是变量.被运算符操作的数成为操作数. Int x = 3; Int y = 4; Int z = x + y 2.2 算数 ...

  2. (转)C语言位运算详解

    地址:http://www.cnblogs.com/911/archive/2008/05/20/1203477.html C语言位运算详解 作者:911 说明:本文参考了http://www2.ts ...

  3. 位运算详解+竞赛常见用法总结

    目录 一.位运算详解 二.位运算应用 1.快速幂 2.给定一个数组A, 长度为n,求下面这段程序的值 3.数数字 4.数数字 2 5.nim博弈问题: 6.树状数组 7.判断一个数x是不是2的某次方 ...

  4. python开方运算符_Pytorch Tensor基本数学运算详解

    1. 加法运算 示例代码: import torch # 这两个Tensor加减乘除会对b自动进行Broadcasting a = torch.rand(3, 4) b = torch.rand(4) ...

  5. 大数取余运算(详解)

    大数取余运算(详解) //(19^3 mod 23)^2 mod 31=25 //a=19 b=3 c=23 d=2 e=31 #include<stdio.h> long long po ...

  6. 取模(余)%运算详解

    取模(余)%运算详解 1.JAVA中 对于整型数a,b来说,取模运算是:               1.求 整数商: c = a/b;               2.计算模: a%b = a - ...

  7. php的位运算,php的位运算详解

    php的运算符有一类是位运算的,本文主要和大家分享php的位运算详解,希望能帮助到大家. 一:& And按位与 $a&$b 将把二进制$a和二进制$b位数都为1的设为1,其他位为0 例 ...

  8. 一篇搞定位运算——java位运算详解

    java位运算详解 前言 一.位运算符 &:按位与 |:按位或 ~:按位非 ^:按位异或 <<:左位移运算符 >>:右位移运算符 <<<:无符号右移运 ...

  9. java大数运算详解【其三】大数乘法之平方算法之按位二次展开式算法

    目录 java大数运算详解[其一]大数加减法 java大数运算详解[其二]大数乘法 java大数运算详解[其三]大数乘法之平方算法之按位二次展开式算法 java大数运算详解[其四]大数乘法之平方算法之 ...

  10. 【小白学PyTorch】10.pytorch常见运算详解

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 <<小白学PyTorch>> 参考目录: ...

最新文章

  1. 《数学之美》第4章 谈谈分词
  2. 皮一皮:大型海王翻车现场...
  3. jquery input事件
  4. html中input后的报错信息,js 监测from表单中的input和select,时时监测,没有输入或选择信息报错,不允许提交数据...
  5. Hexo-fluid主题设置统计博客阅读量
  6. 硬盘与电线挨着会高温吗_机械硬盘时代徐徐落幕?出货量再减50万件,你还会买新机械盘吗?...
  7. composer切换源_composer的安装 及 常用命令(切换源等)
  8. matlab rand函数
  9. centos7 mysql安装_CentOS7安装MySQL(详解)
  10. 人人译视界 for Mac智能翻译软件
  11. 求邻接矩阵matlab,如何使用MATLAB绘制邻接矩阵
  12. 编辑邮件时去掉回车光标跟随
  13. ArcGIS土壤稳定性评估(附练习数据下载)
  14. java编写时间流逝_如何测量Java中的时间流逝?
  15. selenium2 WebDriver 在asp.net项目中的应用
  16. 义隆单片机学习笔记之(二) 指令系统
  17. python数字转中文大写_python 数字转换为大写
  18. HighlightPlus物体自发光
  19. 如何增强云端医疗健康数据的隐私保护
  20. 泣神曲服务器维护,泣神曲手游预约-泣神曲官网安卓版预约v1.0.0_第一手游网

热门文章

  1. 前端面试题汇总集合(初级)
  2. Canokey Pigeon的初级玩法
  3. Vue中v-html会 导致哪些问题 (vue 11)
  4. vivox9usb调试Android,vivo X9S Plus的usb调试模式在哪里,打开vivo X9S Plususb调试模式的步骤...
  5. mumu模拟器 连接不到adb 配置
  6. EditText文本输入框使用完毕自动掩藏输入法
  7. (一)IntelliJ IDEA的安装、配置
  8. Docker(应用服务引擎)
  9. Oracle系列-简介及安装
  10. android屏幕黄,小米11屏幕发黄怎么办?(附解决办法)