一个帖子引发的思考(引用,条件判断,优先级)
来源:互联网 发布:吞吐量测试软件 编辑:程序博客网 时间:2024/05/29 07:50
原帖地址:http://topic.csdn.net/u/20101115/21/e09e8980-6179-4937-bb32-265b89f2c4f3.html
首先楼主的问题大家可以看一楼的回答和解释,很清楚了我觉得。
if(($a=3)>0||($b=$a)>0)这里面,把3赋值了给$a。而对于"||"逻辑运算符,只要前面的成立就不往后面执行了,所以没有把$a赋值给$b。
可是二楼的提出了另外一个问题,即把条件语句if(($a=3)>0||($b=$a)>0)改为if($a=3||$b=$a)。
和原来的输出结果一样么?
结果是不一样的。
为什么不一样,其实我也不是很懂,自己测试了一下,也找了好久:
首先是优先级的问题:按理说||的优先级高于=,即if($a=3||$b=$a)等价于if($a=(3||$b)=$a),但是实际的结果是||的优先级让=抢走了。具体原因大家参照这儿:http://www.laruence.com/2010/07/26/1668.html?cp=1#comments
然后就是我试了一下,if($a=3||$b=$a)和if(($a=3)||$b=$a)的结果也不一样,而且问题就出在这儿。
于是我在条件语句中加了一条语句:var_dump($a,$b)用于输出$a和$b的类型,结果是$a为布尔型,$b为int即整形。
看到这儿大家应该明白了,$a=3加上括号之后,把3赋值给了$a,进行了运算,即整体为真。不加括号的话,即也为真,但是没有运算,只是判断真假,所以$a的值回归到原始的0。(我的理解,我继续查找啊。)
- 一个帖子引发的思考(引用,条件判断,优先级)
- 一个帖子引发的思考
- 一个帖子引发的思考
- 惊!一则帖子引发的思考
- 关于一个S5pv210 HDMI调试帖子引发对方案以及开发板公司技术支持的思考
- 一个“笑话”引发的思考
- 一个细节引发的思考
- 一个苹果引发的思考
- 一个问题引发的思考
- 一个程序员引发的思考
- 一个测试引发的思考
- 一个BUG引发的思考
- 一个空格引发的思考
- 一个demo引发的思考
- 一个案例引发的思考
- 一个问题引发的思考
- 一个JavaBean引发的思考
- 一个字符引发的思考
- JavaScript Scripting.FileSystemObject FSO属性大全
- 利用SQL2000的DTS调度进行定期数据库备份
- this指针
- Q:用户在notes和shmail禁用离开办公室后,为何离开办公室代理依然运行
- http://fandy81.itpub.net/category/18452/30385
- 一个帖子引发的思考(引用,条件判断,优先级)
- 课程设计──LINUX字符驱动
- 为程序员推荐的外国书籍
- 网页游戏开发入门教程
- Q:domino用户的新邮件不出现在$Inbox(收件箱),但可以在'所有文档'视图中看到
- 单向链表操作详解(一)
- Surfer画等值线----包括参数及文件数据,源代码
- 挖掘经典:几乎被人遗忘的HTML七种用法
- vc.net datalinks 数据库连接