登录  /  注册

PHP的三元运算符

墨辰丷
发布: 2018-06-09 09:59:36
原创
83760人浏览过

本篇文章主要介绍php的三元运算符,感兴趣的朋友参考下,希望对大家有所帮助。

推荐手册php完全自学手册

三元运算符语法:条件 ? 结果1 : 结果2 说明:问号前面的位置是判断的条件,如果满足条件时结果1,不满足时结果2。

下面我们来详细探讨下。

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

$if_summary = $row['IF_SUMMARY']==2?'是':'否';
登录后复制

这句话的意思就等于是

if($row['IF_SUMMARY']==2){
$if_summary="是";
}else{
$if_summary="否";
}
登录后复制

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

相关文章推荐:
1.PHP三元运算符:快还是不快?
2.PHP中三元运算符和Null合并运算符的简单比较
3.php中常见的运算符有哪些
相关视频推荐:
1.独孤九贱(4)_PHP视频教程

在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 ? &#39;&#39;: print &#39;No&#39;;
登录后复制

应该注意的是:

在使用三元运算符时,建议使用print语句替代echo语句。

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

$str = $_GET[&#39;abc&#39;] ? &#39;wangjinbo&#39; : &#39;wjb&#39;;
登录后复制

这里不能理解为:当$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)表示没有值。

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

php模拟post请求的三种常见用法

php针对文件操作及字符串加密的方法

php针对数组的删除、转换、分组、排序

以上就是PHP的三元运算符的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号