今天有人问我echo '1'.print(2)+3 的结果是511,这其实涉及到PHP中运算顺序先后的问题,还有就是echo 和print的一点细微区别.这个语句 运算的顺序为 先 print(2)+1, 再把1和print(2)+3 的结果拼接,最后使用echo输出。
第一步:print(2)+3 的结果是5
第二步:‘1’.print(2)+3 按道理应该是15,但是print本身自带输出,所以5比1 先输出出来,这一步输出的就是51
第三步:echo 前面的结果,按道理就是输出51 就完了,但是 echo和print是有区别的 echo 是不会有返回值,而print是有返回值的,当print成功输出了是会返回1的
所以 '1'.print(2)+3 这个语句反回的结果是1 最后会被echo 输出,所以最后的结果就是511了。
转自:http://blog.csdn.net/wl669023/article/details/77966886