php 三元运算(?:)详解
三元运算符是软件编程中的一个固定格式,语法是“条件表达式? 表达式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 三元运算(?:)详解相关推荐
- java三元运算详解
运算符 2.1 运算符概念 运算符是用来计算数据的指令.数据可以是常量,也可以是变量.被运算符操作的数成为操作数. Int x = 3; Int y = 4; Int z = x + y 2.2 算数 ...
- (转)C语言位运算详解
地址:http://www.cnblogs.com/911/archive/2008/05/20/1203477.html C语言位运算详解 作者:911 说明:本文参考了http://www2.ts ...
- 位运算详解+竞赛常见用法总结
目录 一.位运算详解 二.位运算应用 1.快速幂 2.给定一个数组A, 长度为n,求下面这段程序的值 3.数数字 4.数数字 2 5.nim博弈问题: 6.树状数组 7.判断一个数x是不是2的某次方 ...
- python开方运算符_Pytorch Tensor基本数学运算详解
1. 加法运算 示例代码: import torch # 这两个Tensor加减乘除会对b自动进行Broadcasting a = torch.rand(3, 4) b = torch.rand(4) ...
- 大数取余运算(详解)
大数取余运算(详解) //(19^3 mod 23)^2 mod 31=25 //a=19 b=3 c=23 d=2 e=31 #include<stdio.h> long long po ...
- 取模(余)%运算详解
取模(余)%运算详解 1.JAVA中 对于整型数a,b来说,取模运算是: 1.求 整数商: c = a/b; 2.计算模: a%b = a - ...
- php的位运算,php的位运算详解
php的运算符有一类是位运算的,本文主要和大家分享php的位运算详解,希望能帮助到大家. 一:& And按位与 $a&$b 将把二进制$a和二进制$b位数都为1的设为1,其他位为0 例 ...
- 一篇搞定位运算——java位运算详解
java位运算详解 前言 一.位运算符 &:按位与 |:按位或 ~:按位非 ^:按位异或 <<:左位移运算符 >>:右位移运算符 <<<:无符号右移运 ...
- java大数运算详解【其三】大数乘法之平方算法之按位二次展开式算法
目录 java大数运算详解[其一]大数加减法 java大数运算详解[其二]大数乘法 java大数运算详解[其三]大数乘法之平方算法之按位二次展开式算法 java大数运算详解[其四]大数乘法之平方算法之 ...
- 【小白学PyTorch】10.pytorch常见运算详解
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 <<小白学PyTorch>> 参考目录: ...
最新文章
- 《数学之美》第4章 谈谈分词
- 皮一皮:大型海王翻车现场...
- jquery input事件
- html中input后的报错信息,js 监测from表单中的input和select,时时监测,没有输入或选择信息报错,不允许提交数据...
- Hexo-fluid主题设置统计博客阅读量
- 硬盘与电线挨着会高温吗_机械硬盘时代徐徐落幕?出货量再减50万件,你还会买新机械盘吗?...
- composer切换源_composer的安装 及 常用命令(切换源等)
- matlab rand函数
- centos7 mysql安装_CentOS7安装MySQL(详解)
- 人人译视界 for Mac智能翻译软件
- 求邻接矩阵matlab,如何使用MATLAB绘制邻接矩阵
- 编辑邮件时去掉回车光标跟随
- ArcGIS土壤稳定性评估(附练习数据下载)
- java编写时间流逝_如何测量Java中的时间流逝?
- selenium2 WebDriver 在asp.net项目中的应用
- 义隆单片机学习笔记之(二) 指令系统
- python数字转中文大写_python 数字转换为大写
- HighlightPlus物体自发光
- 如何增强云端医疗健康数据的隐私保护
- 泣神曲服务器维护,泣神曲手游预约-泣神曲官网安卓版预约v1.0.0_第一手游网
热门文章
- 前端面试题汇总集合(初级)
- Canokey Pigeon的初级玩法
- Vue中v-html会 导致哪些问题 (vue 11)
- vivox9usb调试Android,vivo X9S Plus的usb调试模式在哪里,打开vivo X9S Plususb调试模式的步骤...
- mumu模拟器 连接不到adb 配置
- EditText文本输入框使用完毕自动掩藏输入法
- (一)IntelliJ IDEA的安装、配置
- Docker(应用服务引擎)
- Oracle系列-简介及安装
- android屏幕黄,小米11屏幕发黄怎么办?(附解决办法)