博主辛苦了,我要打赏银两给博主,犒劳犒劳站长。
【摘要】昨天朋友还聊到了另外一个题目,关于PHP运算符的优先级的,我在这里做一个笔记。
题目是这样的:
echo 'Testing ' . 1+2 . '45';求输出的结果:
A.Testing 1245
B.Testing 345
C.Testing 1+245
D.245
我一开始给出答案B,我认为语句是先执行1+2然后把字符串连接起来,所以是B,当时我也没有思考,一语而出是B,但是恰恰我错了,我并没有将PHP运算符优先级这一非常重要的知识点运用到这道题目中。
实际答案是D,这与加号"+"、连接符"."之间的优先级有着密切的关联,我翻阅了一下学习手册,在PHP手册 > 语言参考 > 运算符 > 运算符优先级中有讲到:
注:连接运算符"."的优先级比加号"+"高,因此PHP解释器实际执行的运算可以表示为:
('Testing ' .1)+(2 . '45')。由于字符串Testing 1不是数字,所以加号前面的运算等于0,加号后面的运算等于245,最后输出的结果是0+245,等于245。
另外需要注意的是连接符号左右都有空格,如果没有空格的话,系统会混淆小数点,导致运行会出错。
版权归 马富天博客 所有
本文链接地址:http://www.mafutian.net/177.html
转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^
顶0
踩0