PHP细节之&&和and
Submitted by gouki on 2009, April 2, 8:02 PM. PHP
本文来自冰山上的播客:http://xinsync.xju.edu.cn/index.php/archives/4476
还是值得记录一下,虽然效果一样,但正因为优先级的不同,导致结果可能会和预料中的值有偏差,虽然实际应用中不太用得到但,看看还是好的
原文:
PHP中&&和and都是逻辑运算符,且功能也是完全一样的。如果你不了解它俩的区别,你可能会留下很不容易发现的BUG。仔细看下面的代码片段(注释是执行结果):
<?php
$true = TRUE;
$false = FALSE;
$rt1 = $true && $false;//$rt1:FALSE
$rt2 = $true and $false;//$rt2:TRUE
var_dump($rt1);//FALSE
var_dump($rt2);//TRUE
var_dump($true && $false);//FALSE
var_dump($true and $false);//FALSE
这里最让人感到奇怪的就是为什么$rt1成了FALSE,而$rt2却是TRUE。其实这是PHP优先级在作怪。从文档中我们看到,赋值符号”=”的优先级低于逻辑与符号”&&”,但高于逻辑与符号”and”(也就是&& > = > and)。也就是说:
$rt1 = $true && $false;
$rt2 = $true and $false;
在PHP看来其实是:
$rt1 = ($true && $false);
($rt2 = $true) and $false;
这样就容易解释为什么会有那样的结果了。那现在你知道下面两句的结果了吗?
var_dump($rt1 = $true && $false);
var_dump($rt2 = $true and $false);
参考资料:
PHP Operator Precedence
PHP Logical Operators
本站采用
创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"
易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.
Tags: php, 语法
« 上一篇 | 下一篇 »
只显示10条记录相关文章
快速生成目录树 (浏览:
48480, 评论:
7)
8年了。。。我的能力还停留在写留言本的技术能力上。。。。 (浏览:
45253, 评论:
3)
PHP的XSS攻击过滤函数 (浏览:
44384, 评论:
2)
PHP中Eval的作用 (浏览:
43226, 评论:
4)
PHP常见错误(二) (浏览:
41515, 评论:
1)
PHP sendmail (浏览:
39364, 评论:
7)
Imagick DLL (浏览:
34733, 评论:
6)
何为RBAC (浏览:
31360, 评论:
4)
PHP 技巧:file_get_contents的超时处理 (浏览:
31337, 评论:
0)
主键和外键的设计原则 (浏览:
31272, 评论:
1)
1条记录访客评论
国产的永久,xixi
Post by 北京时间 on 2009, April 7, 8:51 PM
#1
别买了,买辆高级一点的自行车吧
Post by 卡通服装 on 2009, April 2, 11:51 AM
#2
...... T_T
Post by walker on 2009, April 1, 8:40 PM
#3
说得人家也心痒痒的
于是借此地同问
Post by watermoon on 2009, April 1, 4:42 PM
#4
忘记说谢谢了:)
Post by phones on 2009, April 1, 1:29 PM
#5
给你推荐一个网站,新车评网 :www.xincheping.com 我是里面的前程序员,因为自己创业所以出来了,我敢保证里面的车评还是很客观的,基本上所有的文章都是网站编辑自己原创的,不像别的汽车网站上面的文章都是软文或是厂家的公关稿,如果老大觉得我的推荐有帮助,请赞助一个有情链接给我, 网站名称: chinese cell phones 网址:www.chinese-cell-phones.com (屏蔽浏览器中文用户)
Post by phones on 2009, April 1, 1:26 PM
#6
发表评论