php中的三元运算符使用说明


Posted in PHP onJuly 03, 2011

今天一个网友在群里发了个题目不难,但是可能会错

echo 
$a == 1 ? 'one' : 
$a == 2 ? 'two' : 
$a == 3 ? 'three' : 
$a == 4 ? 'foura' : 'other'; 
echo "\n";

输出结果是:

<BR>

结果是:four

一开始想不明白,按照我的理解,应该是这样的逻辑:
echo ($a == 1 ? 'one' :
( $a == 2 ? 'two' :
( $a == 3 ? 'three' :
($a == 4 ? 'four' : 'other'))));
输出为:two

后来在kevinG(qq:48474)的指教下,参看php手册,终于明白了php的三元符的解释是从左到右的,
<!--?php
// 乍看起来下面的输出是 'true'
echo (true?'true':false?'t':'f');

// 然而,上面语句的实际输出是't',因为三元运算符是从左往右计算的

// 下面是与上面等价的语句,但更清晰
echo ((true ? 'true' : 'false') ? 't' : 'f');

所以上面的可以这样解释:
echo (
((($a == 1 ? 'one' :
$a == 2) ? 'two' :
$a == 3 )? 'three' :
$a == 4 )? 'four' : 'other');

其实这个涉及到类型转换:
$a==1=>false=>$a==2?true=>'two'=true=>'three'=true=>'four'

PHP 相关文章推荐
如何过滤高亮显示非法字符
Oct 09 PHP
php下过滤html代码的函数 提高程序安全性
Mar 02 PHP
paypal即时到账php实现代码
Nov 28 PHP
php中获取指定IP的物理地址的代码(正则表达式)
Jun 23 PHP
PHP mysql与mysqli事务使用说明 分享
Aug 17 PHP
利用浏览器的Javascript控制台调试PHP程序
Jan 08 PHP
php输入数据统一类实例
Feb 23 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
Aug 31 PHP
php如何实现只替换一次或N次
Oct 29 PHP
php阳历转农历优化版
Aug 08 PHP
THINKPHP在添加数据的时候获取主键id的值方法
Apr 03 PHP
对laravel的session获取与存取方法详解
Oct 08 PHP
PHP 数据结构 算法 三元组 Triplet
Jul 02 #PHP
php中批量删除Mysql中相同前缀的数据表的代码
Jul 01 #PHP
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
Jul 01 #PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
Jul 01 #PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
Jun 30 #PHP
在php中判断一个请求是ajax请求还是普通请求的方法
Jun 28 #PHP
php编程实现获取excel文档内容的代码实例
Jun 28 #PHP
You might like
PHP 截取字符串函数整理(支持gb2312和utf-8)
2010/02/16 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
jQuery链使用指南
2015/01/20 Javascript
js淡入淡出的图片轮播效果代码分享
2015/08/24 Javascript
jquery实现可关闭的倒计时广告特效代码
2015/09/02 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
2016/07/20 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
2019/04/13 Javascript
基于layPage插件实现两种分页方式浅析
2019/07/27 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
微信小程序吸底区域适配iPhoneX的实现
2020/04/09 Javascript
完美解决vue 中多个echarts图表自适应的问题
2020/07/19 Javascript
在vs code 中如何创建一个自己的 Vue 模板代码
2020/11/10 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
python中正则表达式的使用详解
2014/10/17 Python
用C++封装MySQL的API的教程
2015/05/06 Python
Python实现简单HTML表格解析的方法
2015/06/15 Python
浅谈django orm 优化
2018/08/18 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
通过实例简单了解python yield使用方法
2020/08/06 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
英国大码女性时装零售商:Evans
2018/08/29 全球购物
历史系毕业生自荐信
2013/10/28 职场文书
法学专业本科生自荐信范文
2013/12/17 职场文书
文科教师毕业的自我评价
2014/01/16 职场文书
高中军训感言500字
2014/02/24 职场文书
大学生党性分析材料
2014/12/19 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
高三英语教学反思
2016/03/03 职场文书
python 学习GCN图卷积神经网络
2022/05/11 Python
Python使用Web框架Flask开发项目
2022/06/01 Python