马富天博客

【面试题】加号 和连接符.的优先级比较

学习笔记 马富天 2016-07-27 15:19:11 16 3

【摘要】昨天朋友还聊到了另外一个题目,关于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

上一篇《 【面试题】求for($k = 0;$k = 1;$k ){}和for($k = 0;$k == 1;$k ){}循环体被执行的次数 》 下一篇《 php实现pjax无刷新加载页面实例 》
评论审核未开启
表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情
验证码