三元(三目)运算符解释
三元运算符语法:条件 ? 结果1 : 结果2 说明:问号前面的位置是判断的条件,如果满足条件时结果1,不满足时结果2。
下面我们来详细探讨下。
今天在改论文在线的时候遇到了一个语句看不懂:
1
$if_summary = $row['IF_SUMMARY']==2?'是':'否';
这句话的意思就等于是
1
2
3
4
5
if($row['IF_SUMMARY']==2){
$if_summary="是";
}else{
$if_summary="否";
}
三元运算符的功能与“if...else”流程语句一致,它在一行中书写,代码非常精练、执行效率更高。
相关文章推荐:
1.PHP三元运算符:快还是不快?
2.PHP中三元运算符和Null合并运算符的简单比较
3.php中常见的运算符有哪些
相关视频推荐:
1.独孤九贱(4)_PHP视频教程
在PHP程序中恰当地使用三元运算符能够令脚本更为简洁、高效。
代码格式如下:
1
(expr1) ? (expr2) : (expr3);
解释:
如果条件“expr1”成立,则执行语句“expr2”,否则执行“expr3”。
实现同样的功能,若使用条件流程语句,就需要书写多行代码:
1
2
3
4
5
6
if(expr1) {
expr2;
} else {
expr3;
}
可见,前面所说的三元运算符之好并非夸张。
可是,多数情况下我们只在代码较为简单的时候使用三元运算符,即执行语句只为单句的时候。如:
1
$a>$b ? print "a大于b" : print "a小于b";
事实上,三元运算符可以扩展使用,当设置的条件成立或不成立,执行语句都可以不止一句,试看以下格式:
(expr1) ? (expr2).(expr3) : (expr4).(expr5);
我们非常明显地看到,多个执行语句可以使用用字符串运算符号(“.”)连接起来,各执行语句用小角括号包围起来以表明它是一个独立而完整的执行语句。
这样扩展后它的功能更为逼近“if...else”流程语句。
同时三元运算符还可以嵌套使用。
例如,a大于b成立时:
如果a小于c,那么x=c-a否则x=a-c;
否则a小于b成立时:如果b小于c,那么x=c-b否则x=b-c:
1
$a>$b ? $x=($a<$c ? $c-$a : $a-$c) : $x=($b<$c ? $c-$b : $b-$c);
嵌套使用的三元运算符可读性不太好,日后对代码的维护极可能存在问题,但比起“if...else”之类的流程语句,在上述情形之下,它的确太简练了,这是它的诱人之处。
对于喜欢偷懒和追求代码简洁的人来说,用三元运算符取代if流程语句应该是绝佳的选择。即使不用考虑“三元”中条件句以外的任意某一“元”,使用三元运算符仍然比if语句简练。
以下语句的语法是正确的,它们以小解引号的方式忽略了第二或第三“元”:
1
2
$a>$b ? print "Yes" : "";
$a>$b ? '': print 'No';
应该注意的是:
在使用三元运算符时,建议使用print语句替代echo语句。
注意下列一串语句的理解:
1
$str = $_GET['abc'] ? 'wangjinbo' : 'wjb';
这里不能理解为:当$str等于$_GET['abc'] 时,赋值为 'wangjinbo' 否则赋值为 'wjb';
因为一:判断相等应该用==;
因为二:三元算符的语法是如上所示:(expr1) ? (expr2) : (expr3),显然上面的二元,三元'wangjinbo'或'wjb'不能单独构成一个有意义的表达式;
正确理解是:
$_GET['abc']为空值(也就是否(false),PHP中 ' ',null,0,undifine,都等效布尔值false)这时$str赋值为'wjb',否则赋值为'wangjinbo';
注:
IF语句条件里面没有条件时,内容本身 $_GET['abc'] 为真,条件成立, str赋值为 'wangjinbo' ,否则赋值为 'wjb';没有明确值为true时,真(true)表示有值,假(false)表示没有值。
三元(三目)运算符解释相关推荐
- Java 一元、二元运算符、三目条件运算符(三元运算符)
运算符可以是一元.二元或三元的. 一元运算符有1个操作数.例如,递增运算符"++"就是一元运算符. 二元运算符有2个操作数.例如,除法运算符"/"有2个操作数. ...
- 【笔记】Java的运算符(赋值运算符号、一元运算符、算术运算符、关系运算符、自增与自减运算符、逻辑运算符、括号运算符、位运算符、三元(三目)运算符)、表达式与语句:简洁表达式
文章目录 一.运算符 1.赋值运算符号 2.一元运算符 3.算术运算符 4.关系运算符 5.自增与自减运算符 6.逻辑运算符 7.括号运算符 8.位运算符 左移位: 右移位: 9.三元(三目)运算符 ...
- PHP三元(三目)运算符
PHP三元(三目)运算符 语法格式: (expr1) ? (expr2) : (expr3) 当expr1为true时(成立),返回值为expr2,当expr1为false时(不成立),返回值为exp ...
- c语言单目运算符和三目,6、单目运算符 双目运算符 三目运算符() 及 优先级的探讨!...
1.单目就是这个运算符只对一个变量进行操作 代表符号:!(逻辑非) ~(按位取反)++(自增)--(自减) 举例:int a=1;a++;(第二句"a++"则只对a一个变量进行了操 ...
- Java码农进阶之路~基本数据类型运算符流程控制-分支三目
基本数据类型 首先先说下字节:字节(byte)是计算机信息技术用于计量存储容量的一种计量单位 通常情况下一字节由8个二进制位表示 0000 0000; 一个字节的取值范围为-128~127. 大家有兴 ...
- 第三课.运算符与表达式
第三课目录 运算符与表达式 算术运算符 关系运算符 逻辑运算符 德摩根律 使用断言assert 位运算符 补码 补码与位运算 赋值运算符 杂项运算符 运算符与表达式 数学是科技发展的基础,数学公式的意 ...
- JAVA-三目运算符返回值规则
条件(三目)运算符:表达式 1 ? 表达式 2 :表达式 3 注意事项: 右结合性:a > b ? a : i > j ? i : j 相当于 a > b ? a : ( ...
- 隐式转换、IF判断、逻辑【与、或、非】、三目运算的用法(基础)
1.0 隐式转换 隐式转换 => 隐式的转换数据类型 => js机制(原理),不是语法.判断 => 语法 隐式转换什么时候发生? 操作符对操作数的类型是有要求的,如果操作数的 ...
- 如何单目运算符和双目运算符以及三目运算符
1.单目运算符: 单目运算符是指运算所需变量为一个的运算符,又叫一元运算符,其中有逻辑非运算符:!.按位取反运算符:~.自增自减运算符:++, –等. 逻辑非运算符[!].按位取反运算符[~].自增自 ...
- php 三元运算 简写,es6 三元运算(三元类目)符语法与简写,多条件判断与??::形式 - Laravel学习网...
三元运算符就是替代传统if-else语句让更简洁. 一.三元运算标准写法 我们传统的写法为: const x = 20; let answer; if (x > 10) { answer = ' ...
最新文章
- 一起谈.NET技术,ASP.NET MVC Membership 权限 漫谈
- VUE -- 自定义控件(标签)
- g460 bios 白名单_深睛高清车牌识别相机白名单,智能管理车辆进出_深睛车牌识别...
- 可扫爆服务器系统,可扫可爆云服务器
- springcloud 组件_深入理解 Spring Cloud 核心组件与底层原理
- 在lnmp1.3布置的web服务器上运行thinkphp3.2.3项目pathinfo路径模式
- Silverlight-Visifire图表使用示例发布时空白页面的解决办法
- Android笔记(八) Android中的布局——相对布局
- 中通滤波matlab,如何用MATLAB将低通改成中通滤波器
- C语言 第八章 函数、指针与宏
- 微型计算机技术及应用 考试,陕西理工学院微型计算机技术及应用考试试卷(5份)...
- ImageIO 框架详细解析
- OpenGL+VS2013环境配置
- Unix操作系统基础:Unix文件系统之文件权限
- 3D游戏开发套件指南(入门篇,转自Unity官方平台公众号)
- android 取消选中状态,Android:显示/隐藏偏好检查/取消选中其他CheckBoxPreference
- uv纹理坐标设定与贴图规则
- 电压(电流)运算放大器为什么要增大(减小)输入阻抗?
- 进入邻居家的无线路由器
- 12海里、24海里、200海里的意义及名称