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类
Apr 09 PHP
php中3des加密代码(完全与.net中的兼容)
Aug 02 PHP
PHP常用正则表达式集锦
Aug 17 PHP
php字符串截取函数用法分析
Nov 25 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
Dec 18 PHP
详解php魔术方法(Magic methods)的使用方法
Feb 14 PHP
PHP经典算法集锦【经典收藏】
Sep 14 PHP
利用php做服务器和web前端的界面进行交互
Oct 31 PHP
Zend Framework入门应用实例详解
Dec 11 PHP
thinkphp中U方法按路由规则生成url的方法
Mar 12 PHP
php 后端实现JWT认证方法示例
Sep 04 PHP
php装饰者模式简单应用案例分析
Oct 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 preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
fgetcvs在linux的问题
2012/01/15 PHP
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
memcache一致性hash的php实现方法
2015/03/05 PHP
php中file_exists函数使用详解
2015/05/08 PHP
php curl 模拟登录并获取数据实例详解
2016/12/22 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
JQuery之focus函数使用介绍
2013/08/20 Javascript
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
2015/02/28 Javascript
Angularjs制作简单的路由功能demo
2015/04/14 Javascript
angular和BootStrap3实现购物车功能
2017/01/25 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
2017/06/13 Javascript
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
Vue中v-for的数据分组实例
2018/03/07 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
2019/10/17 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
Jquery如何使用animation动画效果改变背景色的代码
2020/07/20 jQuery
python实现人脸识别代码
2017/11/08 Python
python 实现读取一个excel多个sheet表并合并的方法
2019/02/12 Python
python智联招聘爬虫并导入到excel代码实例
2019/09/09 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
Python Tensor FLow简单使用方法实例详解
2020/01/14 Python
Python调用.net动态库实现过程解析
2020/06/05 Python
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
意向书范文
2014/03/31 职场文书
销售简历自我评价怎么写
2014/09/26 职场文书
乱丢垃圾袋检讨书
2014/10/08 职场文书
2015年公司国庆放假通知
2015/07/30 职场文书
《水上飞机》教学反思
2016/02/20 职场文书
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL