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 xfocus防注入资料
Apr 27 PHP
基于OpenCV的PHP图像人脸识别技术
Oct 11 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
May 07 PHP
php使用curl出现Expect:100-continue解决方法
Mar 03 PHP
深入讲解PHP Session及如何保持其不过期的方法
Aug 18 PHP
如何使用PHP对网站验证码进行破解
Sep 17 PHP
php微信公众号js-sdk开发应用
Nov 28 PHP
Yii框架弹出框功能示例
Jan 07 PHP
phpMyAdmin无法登陆的解决方法
Apr 27 PHP
利用laravel搭建一个迷你博客实战教程
Aug 13 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 02 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
Nov 23 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无限分类(树形类)的深入分析
2013/06/02 PHP
symfony表单与页面实现技巧
2015/01/26 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
改变javascript函数内部this指针指向的三种方法
2010/04/23 Javascript
Javascript 去除数组的重复元素
2010/05/04 Javascript
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
2013/04/08 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
node.js正则表达式获取网页中所有链接的代码实例
2014/06/03 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
在vue-cli搭建的项目中增加后台mock接口的方法
2018/04/26 Javascript
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
Layui实现带查询条件的分页
2019/07/27 Javascript
小程序的上传文件接口的注意要点解析
2019/09/17 Javascript
基于javascript实现碰撞检测
2020/03/12 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
微信小程序实现音乐播放页面布局
2020/12/11 Javascript
python动态参数用法实例分析
2015/05/25 Python
windows下Virtualenvwrapper安装教程
2017/12/13 Python
python基础教程项目二之画幅好画
2018/04/02 Python
浅析Python 多行匹配模式
2020/07/24 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
Missguided美国官网:英国时尚品牌
2018/01/18 全球购物
Spartoo荷兰:鞋子、包包和服装
2018/07/12 全球购物
初婚未育证明
2014/01/15 职场文书
简历上的自我评价
2014/02/03 职场文书
投资意向书范本
2014/04/01 职场文书
房屋产权共有协议书范本
2014/11/03 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
2015年社区纪检工作总结
2015/04/21 职场文书
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android