PHP三元运算符的结合性介绍


Posted in PHP onJanuary 10, 2012

先看一个三元运算式子:

<?php 
$a=1;$b=2;$c=3;$d=4; 
echo $a<$b?'xx':$a<$c?'yy':$a<$d?'zz':'oo'; 
?>

一般按照其它语言(比如C或Java)的规则, 以上代码的运算逻辑是:
$a<$b => true => 'xx' ==> 结束

那么最后得到的结果就是'xx', 而再往后的运算都会被无视.
然而令人吃惊的是, php运算以上代码最后得到的结果却是'zz'...我擦, 什么情况, 这不坑爹么...
老规矩, 只好求教谷歌酱, 结果被告知php的三元运算竟然是向左结合的...于是豁然开窍.
我给上面的代码加上两个括号:
<?php 
$a=1;$b=2;$c=3;$d=4; 
echo (($a<$b?'xx':$a<$c)?'yy':$a<$d)?'zz':'oo'; 
?>

一目了然了吧, 这才是php的运算逻辑:
$a<$b => true => 'xx' => true => 'yy' => true => 'zz' => 结束

这其中涉及到两个类型转化的过程, 即 'xx' => true 和 'xx' => true.
不知这样的过程是否是蛋疼, 确实是让人很难理解...
最后再次回到上面的代码, 将其变为像C一样的向右结合吧:
<?php 
$a=1;$b=2;$c=3;$d=4; 
echo $a<$b?'xx':($a<$c?'yy':($a<$d?'zz':'oo')); 
// 括号换下位置就行了, php里括号省不得 
?>
PHP 相关文章推荐
Apache设置虚拟WEB
Oct 09 PHP
MySQL数据源表结构图示
Jun 05 PHP
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
Aug 01 PHP
php操作mysqli(示例代码)
Oct 28 PHP
XAMPP安装与使用方法详细解析
Nov 27 PHP
PHP处理Oracle的CLOB实例
Nov 03 PHP
php使用ereg验证文件上传的方法
Dec 16 PHP
php+ajax实现文章自动保存的方法
Dec 30 PHP
php对关联数组循环遍历的实现方法
Mar 13 PHP
PHP操作mysql数据库分表的方法
Jun 09 PHP
PHP中常见的密码处理方式和建议总结
Oct 14 PHP
laravel 如何实现引入自己的函数或类库
Oct 15 PHP
如何用phpmyadmin设置mysql数据库用户的权限
Jan 09 #PHP
使用PHPMyAdmin修复论坛数据库的图文方法
Jan 09 #PHP
PHP的SQL注入过程分析
Jan 06 #PHP
超级实用的7个PHP代码片段分享
Jan 05 #PHP
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
Jan 03 #PHP
选择PHP作为网站开发语言的原因分享
Jan 03 #PHP
php 数组动态添加实现代码(最土团购系统的价格排序)
Dec 30 #PHP
You might like
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
php实现的网络相册图片防盗链完美破解方法
2015/07/01 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
JS读取XML文件示例代码
2013/11/15 Javascript
jquery对table中各数据的增加、保存、删除操作示例
2014/05/14 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
2016/06/20 Javascript
深入浅析JavaScript中的Function类型
2016/07/09 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
纯js仿淘宝京东商品放大镜功能
2017/03/02 Javascript
微信小程序之选项卡的实现方法
2017/09/29 Javascript
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
vue首次赋值不触发watch的解决方法
2018/09/11 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
浅谈Vue的响应式原理
2019/05/30 Javascript
react实现复选框全选和反选组件效果
2020/08/25 Javascript
Python for Informatics 第11章 正则表达式(一)
2016/04/21 Python
python妙用之编码的转换详解
2017/04/21 Python
解决pycharm界面不能显示中文的问题
2018/05/23 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
2019/08/13 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
Css3新特性应用之形状总结
2016/12/08 HTML / CSS
css3加js做一个简单的3D行星运转效果实例代码
2017/01/18 HTML / CSS
香港时装购物网站:ZALORA香港
2017/04/23 全球购物
Paul Smith英国官网:英国国宝级时装品牌
2019/03/21 全球购物
Sarenza德国:法国最大的时尚鞋和包包网上商店
2019/06/08 全球购物
介绍下Java的输入输出流
2014/01/22 面试题
在数据文件自动增长时,自动增长是否会阻塞对文件的更新
2014/05/01 面试题
网络研修随笔感言
2014/02/17 职场文书
《二泉映月》教学反思
2014/04/15 职场文书
2015年幼儿园元旦亲子活动方案
2014/12/09 职场文书
新郎答谢词
2015/01/04 职场文书
网络管理员岗位职责
2015/02/12 职场文书
JavaScript数组reduce()方法的语法与实例解析
2021/07/07 Javascript
Win11电源已接通但未充电怎么办?Win11电源已接通未充电的解决方法
2022/04/05 数码科技