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 相关文章推荐
人大复印资料处理程序_查询篇
Oct 09 PHP
php面向对象全攻略 (十六) 对象的串行化
Sep 30 PHP
PHP设计模式之迭代器模式的深入解析
Jun 13 PHP
php中url函数介绍及使用示例
Feb 13 PHP
php根据操作系统转换文件名大小写的方法
Feb 24 PHP
php中spl_autoload详解
Oct 17 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
Oct 31 PHP
PHP过滤黑名单关键字的方法
Dec 01 PHP
分享常见的几种页面静态化的方法
Jan 08 PHP
PHP 二维数组和三维数组的过滤
Mar 16 PHP
Yii控制器中filter过滤器用法分析
Jul 15 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
Dec 31 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
上海无线电三厂简史修改版
2021/03/01 无线电
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
对字符串进行HTML编码和解码的JavaScript函数
2010/02/01 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
详解js闭包
2014/09/02 Javascript
jquery 操作css样式、位置、尺寸方法汇总
2014/11/28 Javascript
JSON与XML的区别对比及案例应用
2016/11/11 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
BootStrap数据表格实例代码
2017/09/13 Javascript
深入理解React高阶组件
2017/09/28 Javascript
vue短信验证性能优化如何写入localstorage中
2018/04/25 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
js实现日历
2020/11/07 Javascript
Windows下安装python2和python3多版本教程
2017/03/30 Python
微信跳一跳游戏python脚本
2020/04/01 Python
Python实现爬虫爬取NBA数据功能示例
2018/05/28 Python
在Mac上删除自己安装的Python方法
2018/10/29 Python
Django csrf 两种方法设置form的实例
2019/02/03 Python
解决Python中报错TypeError: must be str, not bytes问题
2020/04/07 Python
在python中求分布函数相关的包实例
2020/04/15 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
使用keras实现Precise, Recall, F1-socre方式
2020/06/15 Python
Django URL参数Template反向解析
2020/11/24 Python
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
四年大学自我鉴定
2014/02/17 职场文书
低碳日宣传活动总结
2014/07/09 职场文书
2014年党员自我剖析材料
2014/10/07 职场文书
车辆管理制度范本
2015/08/05 职场文书
学习弘扬焦裕禄精神心得体会
2016/01/23 职场文书
团组织关系介绍信
2019/06/24 职场文书
用position:sticky完美解决小程序吸顶问题的实现方法
2021/04/24 HTML / CSS
MYSQL 无法识别中文的永久解决方法
2021/06/03 MySQL
HTML5 语义化标签(移动端必备)
2021/08/23 HTML / CSS
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python
Python OpenCV之常用滤波器使用详解
2022/04/07 Python