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

 更新时间:2011年07月03日 00:06:10   作者:  
今天一个网友在群里发了个题目不难,但是可能会错,大家可以看看啊。
今天一个网友在群里发了个题目不难,但是可能会错
复制代码 代码如下:

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防注入和XSS攻击通用过滤

    整理php防注入和XSS攻击通用过滤

    现在很多网站都存在跨站脚本攻击漏洞,让黑客有机可乘.跨站攻击很容易就可以构造,而且非常隐蔽,不易被查觉(通常盗取信息后马上跳转回原页面)。如何攻击,在此不作介绍,主要谈谈如何防范。
    2015-09-09
  • php获取当前网址url并替换参数或网址的方法

    php获取当前网址url并替换参数或网址的方法

    今天在项目中用到的两个函数,自己写了下,备用,需要的朋友也可以直接使用了,推荐第一个函数为获取,后面为相关的处理参数。
    2010-06-06
  • php中异常处理方法小结

    php中异常处理方法小结

    这篇文章主要介绍了php中异常处理方法,以实例形式总结归纳了常见的php异常处理技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • PHP实现对数组简单求交集,差集,并集功能示例

    PHP实现对数组简单求交集,差集,并集功能示例

    这篇文章主要介绍了PHP实现对数组简单求交集,差集,并集功能,涉及php数组操作函数array_diff、array_intersect及array_merge的使用技巧,需要的朋友可以参考下
    2017-10-10
  • php导入大量数据到mysql性能优化技巧

    php导入大量数据到mysql性能优化技巧

    这篇文章主要介绍了php导入大量数据到mysql性能优化技巧,通过针对SQL语句的优化实现了mysql性能的提高,非常具有实用价值,需要的朋友可以参考下
    2014-12-12
  • php上传excel表格并获取数据

    php上传excel表格并获取数据

    本篇文章主要介绍了php上传excel表格并获取数据的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • 解析php取整的几种方式

    解析php取整的几种方式

    本篇文章是对php取整的几种方式进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Linux下编译redis和phpredis的方法

    Linux下编译redis和phpredis的方法

    这篇文章主要介绍了Linux下编译redis和phpredis的方法,分析了redis的下载,编译,安装及遇到的问题与相应的解决方法,需要的朋友可以参考下
    2016-04-04
  • PHP抓取远程图片(含不带后缀的)教程详解

    PHP抓取远程图片(含不带后缀的)教程详解

    最近在做微信登录开发时候,发现微信头像图片没有后缀名,传统的图片抓取方式不奏效,需要特殊的抓取处理。所以,后来将各种情况结合起来,封装成一个类,分享出来给大家,感兴趣的朋友们下面来一起看看吧。
    2016-10-10

最新评论