php变量简写_PHP 三元运算符简写
缘起
今天阅读 Laravel 的源码时发现"三元运算符"的一种简洁写法:
$otherKey = $otherKey ?: $instance->getKeyName();
?: 是写在一起的!
"三元运算符"是什么?
"三元运算符"可以用一行代码进行逻辑判断, 从而替代常见的 if else 变量赋值判断:
if($condition)){
$result = 'some default value';
} else{
$result = 'other default value';
}
上面的代码用"三元运算符"来写:
$result = $condition ? 'some default value' : 'other default value'
即 boolean_expression ? val_if_true : val_if_false
当碰到一种特殊但是常见的 if else 判断时, 三元运算符还可以更加简化:
"三元运算符"的简写
如果 "if else 变量赋值判断"的逻辑如下:
if($variable)){
$result = $variable; //"值"和"判断条件"是一样的
} else{
$result = 'other default value';
}
"值"和"判断条件"是一样的.
通常的"三元运算符"是这样的:
$result = $variable ? $variable : 'other default value'
简写的"三元运算符"是这样的:
$result = $variable ?: 'other default value'
即 expr ? expr : val_if_false 简写成了 expr ?: val_if_false
注意:
这种写法是在 PHP 5.3 引入的, 所以不要在之前的版本中使用;
Since PHP 5.3, it is possible to leave out the middle part of the conditional operator. Expression expr1 ?: expr3 returns expr1 if expr1 evaluates to TRUE, and expr3 otherwise.
建议不要嵌套使用"三元运算符", 因为很难理解.
跳出"三元运算符"
有人将下面这种判断简写成"三元运算符":
$rule1 = true;
$rule2 = false;
$rule3 = true;
if($res) {
echo "good";
} else {
echo "fail";
}
$res = (($rule1 == true) && ($rule2 == false) && ($rule3 == true)) ? true : false;
讨论中有人提到, 这种情况没有必要使用"三元运算符", 只要写成这样就可以了:
$res = (($rule1 === true) && ($rule2 === false) && ($rule3 === true));
不要为了用而用.
题外
听到"三元运算符"的概念, 感觉很高大上, 今天查英文注释才知道 "三元" 仅仅就是指 "三个部分". 囧
"三元运算符" = Ternary operator
"ternary" = composed of three parts / 由三个部分组成
参考文章
文章历史
2017/04/30 (第一次发布)
2017/06/05 修改润色
2018/11/28 修改润色
如果你觉得我的文章对你有用, 请打个"喜欢", 或者给些改进的建议 _
php变量简写_PHP 三元运算符简写相关推荐
- PHP中三元运算符的用法_php 三元运算符实例详细介绍
三元运算符的功能与"if....else"流程语句一致,它在一行中书写,代码精练.执行效率高.在PHP程序中恰当地使用三元运算符能够让脚本更为简洁.高效.代码的语法如下: (exp ...
- PHP中三元运算符的用法_PHP 三元运算符的使用
从学PHP到现在将近半年时间,今天在李炎恢老师的课程中看到一个这样的语句class Factory { static private $_action = null; static public fu ...
- php 三元运算 简写,es6 三元运算(三元类目)符语法与简写,多条件判断与??::形式 - Laravel学习网...
三元运算符就是替代传统if-else语句让更简洁. 一.三元运算标准写法 我们传统的写法为: const x = 20; let answer; if (x > 10) { answer = ' ...
- java三目运算符判断boonlean,java三元运算符
首先看一下三元运算符的格式 [条件语句] ? [表达式1] : [表达式2] 其中如条件语句为真执行表达式1,否则执行表达式2.简单的例子就不举了,来点其它的.在JDK1.5以前的版本中,表达式1和表 ...
- Java基础重温_02:运算符、三元运算符案例(2只老虎、3个和尚)、键盘录入(Scanner类)、控制流程语句、控制流程语句案例(奇偶数、考试奖励)
摘要 Java基础重温_02: 运算符(算术运算.+操作.赋值运算.自增自减.关系运算(比较).逻辑运算.短路逻辑运算.三元运算) 三元运算符案例(2只老虎:2个变量比较.三个和尚:3个变量比较) 键 ...
- java 三元运算符
三元运算符要求大家对前面几种运算符都有了解 如果不了解可以看一下我之前的文章 三元运算符的基本写法为 值 = 条件?值1:值2; 当条件成立时 最终值等于 值1 若条件不成立 则等于值2 这个写法确实 ...
- php判断简写,怎么简写php 中的三元运算符
今天我发现了PHP三元运算符的一个小小的用法. 这给我干涸的大脑一点乐趣! PHP 三元运算符是对参数赋值时候的一个简洁的主要用法. 一个主要的用法: PHP 三元运算符能够让你在一行代码中描述判定代 ...
- PHP三元运算符的简写形式
1.一般的if...else形式 if(isset($title)){$output = $title; }else{$output = '默认标题'; } 2.三元运算符一般形式 $output = ...
- PHP中三元运算符的用法_php中三元运算符用法_PHP教程
语法:条件 ? 结果1 : 结果2 说明:问号前面的位置是判断的条件,如果满足条件时结果1,不满足时结果2. 代码如下 $id = isset($_GET['id']) ? $_GET['id'] : ...
最新文章
- lisp 焊缝_超声波焊接工具性能参数求解与参数图绘制
- acronym与abbr
- DotNetNuke(DNN)升级攻略(DNN 4.3.7至DNN 4.6.0)
- 搭建本地Yum软件源安装Cloudera Manager 5
- 栈、堆、静态存储区和程序的内存布局
- 【杂谈】认识有三AI的一年,从机械转行CV到专栏作者
- xampp php连接mysql数据库_关于PHP xampp连接数据库之后查询失败,数据库连接成功,表中也有数据...
- android studio中使用x5 webview来读写cookies的问题
- gRPC四种模式、认证和授权实战演示
- el-tooltip位置不灵活_要提高步伐移动的灵活性,注意这5点,加以改正,步伐不再沉重...
- python ----元组方法以及修改细节
- Ubuntu 16.04 安装Matlab R2015b
- CSS中常见中文字体的英文名称
- java:换行符“\n”
- 机械工程c语言第一学期考试题,科学出版社机械工程图学习题集1~10章答案.ppt
- 【Blender报错记录】Bone Heat Weighting: failed to find solution for one or more bones
- 我的理想计算机系100字,我的理想作文100字(通用12篇)
- logoff user in window 2008
- 2048java设计报告_2048设计报告.doc
- Metasploit入侵win7系统
热门文章
- Win 8系统查看无线网络密码
- linux 组软raid0,配置Linux软RAID0
- linux 软raid恢复,Linux软RAID部署系统分区之恢复攻略
- linux创建新目录的命令,mkdir命令:在Linux服务器中创建新目录
- linux用cat创建文件怎么打开,【Linux】使用cat命令创建文本文件
- Stale Read 功能的使用场景
- JAVA修改dmp版本号12g到11,又见bug,动态调整SGA参数导致数据库crash
- Linux重定向与管道符
- 关于支持多个片选的大容量NANDFLASH简记
- 塔望食业洞察|烘焙行业市场规模、消费研究、发展趋势及思考