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制作简单的内容采集器的代码
Nov 28 PHP
php GD绘制24小时柱状图
Jun 28 PHP
用PHP获取Google AJAX Search API 数据的代码
Mar 12 PHP
超级实用的7个PHP代码片段分享
Jan 05 PHP
PHP实现HTTP断点续传的方法
Jun 17 PHP
php中define用法实例
Jul 30 PHP
php邮件发送的两种方式
Apr 28 PHP
PHP线程的内存回收问题
Jul 08 PHP
php中static 静态变量和普通变量的区别
Dec 01 PHP
ThinkPHP防止重复提交表单的方法实例分析
May 10 PHP
php7函数,声明,返回值等新特性介绍
May 25 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
Nov 29 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的可变变量名的使用方法分享
2012/02/05 PHP
PHP数据过滤的方法
2013/10/30 PHP
php几个预定义变量$_SERVER用法小结
2014/11/07 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
2014/11/25 PHP
php面向对象中static静态属性与方法的内存位置分析
2015/02/08 PHP
标准PHP的AES加密算法类
2015/03/12 PHP
PHP编译安装时常见错误解决办法
2015/05/28 PHP
php实现评论回复删除功能
2017/05/23 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
JavaScript的类型简单说明
2010/09/03 Javascript
事件绑定之小测试  onclick &amp;&amp; addEventListener
2011/07/31 Javascript
JavaScript判断变量是否为undefined的两种写法区别
2013/12/04 Javascript
jQuery中animate()方法用法实例
2014/12/24 Javascript
js 定位到某个锚点的方法
2016/11/19 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
浅谈Vue的加载顺序探讨
2017/10/25 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
JS继承定义与使用方法简单示例
2020/02/19 Javascript
vue中的使用token的方法示例
2020/03/10 Javascript
python 转换 Javascript %u 字符串为python unicode的代码
2016/09/06 Python
pandas.DataFrame 根据条件新建列并赋值的方法
2018/04/08 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
利用Python求阴影部分的面积实例代码
2018/12/05 Python
Djang的model创建的字段和参数详解
2019/07/27 Python
Python必须了解的35个关键词
2020/07/16 Python
python 多线程爬取壁纸网站的示例
2021/02/20 Python
什么是Oracle的后台进程background processes?都有哪些后台进程?
2012/04/26 面试题
成考报名单位证明范本
2014/01/16 职场文书
执行总经理岗位职责
2014/02/03 职场文书
意向书范文
2014/03/31 职场文书
建筑工程造价专业自荐信
2014/07/08 职场文书
企业委托书范本
2014/09/13 职场文书
亚布力滑雪场导游词
2015/02/09 职场文书
交通处罚决定书
2015/06/24 职场文书
springboot应用服务启动事件的监听实现
2022/04/06 Java/Android