php三元运算符知识汇总


Posted in PHP onJuly 02, 2015

今天在改论文在线的时候遇到了一个语句看不懂:

$if_summary = $row['IF_SUMMARY']==2?'是':'否';

后来百度后发现是PHP的三元运算符

这句话的意思就等于是

if($row['IF_SUMMARY']==2){
$if_summary="是";
}else{
$if_summary="否";
}

三元运算符的功能与“if...else”流程语句一致,它在一行中书写,代码非常精练、执行效率更高。

在PHP程序中恰当地使用三元运算符能够令脚本更为简洁、高效。

代码格式如下:(expr1) ? (expr2) : (expr3);

解释:如果条件“expr1”成立,则执行语句“expr2”,否则执行“expr3”。

实现同样的功能,若使用条件流程语句,就需要书写多行代码:

if(expr1) {

expr2;
} else {
expr3;
}

可见,前面所说的三元运算符之好并非夸张。可是,多数情况下我们只在代码较为简单的时候使用三元运算符,即执行语句只为单句的时候。如:

$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:

$a>$b ? $x=($a<$c ? $c-$a : $a-$c) : $x=($b<$c ? $c-$b : $b-$c);

嵌套使用的三元运算符可读性不太好,日后对代码的维护极可能存在问题,但比起“if...else”之类的流程语句,在上述情形之下,它的确太简练了,这是它的诱人之处。
对于喜欢偷懒和追求代码简洁的人来说,用三元运算符取代if流程语句应该是绝佳的选择。即使不用考虑“三元”中条件句以外的任意某一“元”,使用三元运算符仍然比if语句简练。以下语句的语法是正确的,它们以小解引号的方式忽略了第二或第三“元”:

$a>$b ? print "Yes" : "";
$a>$b ? '': print 'No';

应该注意的是:在使用三元运算符时,建议使用print语句替代echo语句。

注意下列一串语句的理解:

$str = $_GET['abc'] ? 'wangjinbo' : 'wjb';

这里不能理解为:当$str等于$_GET['abc']  时,赋值为 'wangjinbo'  否则赋值为 'wjb';因为一:判断相等应该用==;因原二:三元算符的语法是如上所示:(expr1) ? (expr2) : (expr3),显然上面的二元,三元'wangjinbo'或'wjb'不能单独构成一个有意义的表达式;

正确理解是:当$_GET['abc']为空(也就是否,PHP中 '',null,0,undifine,都等效布尔值false)时,将$str赋值为'wangjinbo',否则赋值为'wjb';

以上所述就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
用PHP和ACCESS写聊天室(九)
Oct 09 PHP
WHOIS类的修改版
Oct 09 PHP
ASP和PHP都是可以删除自身的
Apr 09 PHP
php addslashes及其他清除空格的方法是不安全的
Jan 25 PHP
CI(CodeIgniter)框架介绍
Jun 09 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
Nov 22 PHP
php实现使用正则将文本中的网址转换成链接标签
Dec 03 PHP
正确的PHP匹配UTF-8中文的正则表达式
May 13 PHP
php实现的操作excel类详解
Jan 15 PHP
php中的单引号、双引号和转义字符详解
Feb 16 PHP
php简单读取.vcf格式文件的方法示例
Sep 02 PHP
PHP var关键字相关原理及使用实例解析
Jul 11 PHP
PHP中foreach()用法汇总
Jul 02 #PHP
PHP.ini安全配置检测工具pcc简单介绍
Jul 02 #PHP
PHP输出缓冲控制Output Control系列函数详解
Jul 02 #PHP
PHP中的命名空间详细介绍
Jul 02 #PHP
PHP+JS实现大规模数据提交的方法
Jul 02 #PHP
PHP中iconv函数知识汇总
Jul 02 #PHP
php统计数组元素个数的方法
Jul 02 #PHP
You might like
Php header()函数语法及使用代码
2013/11/04 PHP
php旋转图片90度的方法
2013/11/07 PHP
二级域名转向类
2006/11/09 Javascript
JavaScript 学习笔记(六)
2009/12/31 Javascript
jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
2011/11/15 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
Javascript中神奇的this
2016/01/20 Javascript
总结在前端排序中遇到的问题
2016/07/19 Javascript
JS html时钟制作代码分享
2017/03/03 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
详细分析jsonp的原理和实现方式
2017/11/20 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
结合axios对项目中的api请求进行封装操作
2020/09/21 Javascript
如何在Vue项目中添加接口监听遮罩
2021/01/25 Vue.js
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
[00:29]2019完美世界全国高校联赛(秋季赛)总决赛海口落幕
2019/12/10 DOTA
Python 加密的实例详解
2017/10/09 Python
火车票抢票python代码公开揭秘!
2018/03/08 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
在django中图片上传的格式校验及大小方法
2019/07/28 Python
python 绘制正态曲线的示例
2020/09/24 Python
CSS3 Backgrounds属性相关介绍
2011/05/11 HTML / CSS
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
面向中国市场的在线海淘美妆零售网站:Beauty House美丽屋
2021/03/02 全球购物
生产车间班组长岗位职责
2014/01/06 职场文书
机电专业大学生职业规划书范文
2014/02/25 职场文书
能源工程专业应届生求职信
2014/03/01 职场文书
2014年科研工作总结
2014/12/03 职场文书
react 路由Link配置详解
2021/11/11 Javascript
《艾尔登法环》发布最新「战技」宣传片
2022/04/03 其他游戏
Zabbix对Kafka topic积压数据监控的问题(bug优化)
2022/07/07 Servers