一道php自增运算符题
刚才在论坛看到的..题目是这样的:
1 2 | $i = 1; echo "i=".(++$i)+(++$i)+(++$i); |
大家可以去运行一下 结果会是7!
这让我们很纳闷 为什么是7呢? 无论如何都出不来7啊..
下面我们改一下这道题目
1 2 | $i = 1; echo (++$i)+(++$i)+(++$i); |
这时候在让你回答.我觉得你是可以回答出正确答案的.
没错. 这个答案是9..我想这个我就不必解释了. 2+3+4 所以等于9
那么回到最上面的题.为什么会是7呢?
其实蒙蔽就蒙蔽在那么多自增运算符了. 我们可以去查一下手册运算符的优先级可以看到.
+ – .属于一个优先级 .也就是说PHP计算的时候需要从左向右计算.
所以PHP需要先计算 “i=”.(++$i) 这时候答案是会是 “i=2″ 注意这是字符串.
在PHP中”.“与”+“的区别是相当分明的.”.“就是字符串运算.”+“就是数字运算.
这时候的运算便成了”i=2″+(++$i)+(++$i)了 我们看到 运算中没有了点.所以PHP会去实行数字运算.
但是第一个是字符串.所以PHP会把”i=2″这个字符串强制转换成数字.由于这个字符串的第一个字符不是数字.所以强制转换后的记过就是0。如果这个字符串是”2i=2″.那么转换后就变成2了.
这时候0+3+4 所以就等于7了.
好了 总结下 这道题需要我们注意2点.
“.“与”+“的优先级的问题
字符串强制转换成数字的问题
10 Comments to “ 一道php自增运算符题 ”
Post comment
分类目录
- ActionScript (2)
- CSS (25)
- Java (3)
- JavaScript (41)
- PHP (108)
- 心情杂谈 (34)
- 收集整理 (77)
- 本站原创 (57)
最近文章
- 在sae中利用SaeFetchurl进行豆瓣的OAuth授权
- OAuth 1.0a与1.0协议的改进…
- 深入理解OAuth与豆瓣OAuth test
- include_path+__autoload与数组+__autoload的比较
- 将google ssl设置为IE8的默认搜索引擎..
- 我们来做一个会呼吸的菜单吧!!
- 在编译php-fpm0.6的时候需要注意的一些问题
- 使用PHP将大文件导入到数据库中..
- 关于用PHP调用WebService中参数为complexType的问题
- 神奇的两次按位非运算符
- 百路推免费短网址服务..首创”收藏夹获取短网址”..
- 哥学社正式上线..
- jQuery中getJSON跨域原理详解
- Web辅助工具条(原名:河蟹工具条CrabBar)0.1发布
- 腾讯微博PC端发图教程
近期评论
- 老飞的小窝 在 jQuery中getJSON跨域原理详解 上的评论
- Jackie.Hamos 在 将google ssl设置为IE8的默认搜索引擎.. 上的评论
- Elmer Zhang 在 在sae中利用SaeFetchurl进行豆瓣的OAuth授权 上的评论
- 茶叶蛋 在 一个PHP+AJAX留言板的完整例子.非常简单! 上的评论
- 9527 在 我们为什么要抛弃模板引擎?? 上的评论
- hikurasai 在 Flash TagCloud中文版. 上的评论
- lx 在 PHP上传进度条深度解析 上的评论
- lx 在 使用PHP将大文件导入到数据库中.. 上的评论
- nflauthentic 在 哥学社正式上线.. 上的评论
- uggsale 在 有三个主题的CSS导航菜单 上的评论
文章归档
- 2010 年八月 (4)
- 2010 年七月 (3)
- 2010 年六月 (4)
- 2010 年五月 (2)
- 2010 年四月 (9)
- 2010 年三月 (12)
- 2010 年二月 (1)
- 2010 年一月 (3)
- 2009 年十二月 (2)
- 2009 年十一月 (3)
- 2009 年十月 (3)
- 2009 年九月 (5)
- 2009 年八月 (4)
- 2009 年七月 (6)
- 2009 年六月 (8)
- 2009 年五月 (8)
- 2009 年四月 (16)
- 2009 年三月 (19)
- 2009 年二月 (22)
- 2009 年一月 (20)
- 2008 年十二月 (38)
- 2008 年十一月 (22)
- 2008 年十月 (7)
- 2008 年九月 (3)
- 2008 年八月 (24)
标签
.net
AJAX
button
Comet
CSS
Discuz!
DIV+CSS
Flash
Form
Google
HTML编辑器
IE8
Java
JavaScript
jQuery
JSP
md5
MySQLReback
OAuth
Oracle
PHP
php-fpm
PNG
Punny
SkiyoTabs
tab
TagCloud
Vista
Web2.0
Windows7
上传
加密
图标
本站原创
模板
模板引擎
源码
登录
短网址
石家庄
算法
类
编译
面向对象
魔术方法

Jessica

受益匪浅啊。。谢啦
看了解释才明白是怎么回事!
明白了
汗= =那你咋不在群里跟我们一起讨论。。。
俺桑心勒。。。
倒,按错了。。直接提交勒。。
那位童鞋就是木有注意到PHP是一个会自动转换数据类型的语言。。。
忽略了这一点才会理解不了。。。
早知道他发了帖问的,我就去搞点KYB了=。=######
http://bbs.phpchina.com/thread-178173-1-1.html
这个问题看你会不会解决,哈哈。
强人。。
解释的很有说服力。
纯踩一脚
这道题是浩强叔叔C语言里的必做题
我也弄错了,刚开始还以为是9呢。。。。
围观 很好
学习了,感谢