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

学习笔记 马富天 2016-07-27 15:19:11 82 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。

另外需要注意的是连接符号左右都有空格,如果没有空格的话,系统会混淆小数点,导致运行会出错。

版权归 马富天PHP博客 所有

本文标题:《【面试题】加号 和连接符.的优先级比较》

本文链接地址:http://www.mafutian.net/177.html

转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

0

0

上一篇《 【面试题】求for($k = 0;$k = 1;$k ){}和for($k = 0;$k == 1;$k ){}循环体被执行的次数 》 下一篇《 php实现pjax无刷新加载页面实例 》

所有评论

  1. 首页
  2. 上一页
  3. 1
  4. 下一页
  5. 尾页
  6. 第1页
  7. 每页12条
  8. 共1页
  9. 共3条
评论审核未开启
表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情
验证码

TOP10

  • 浏览最多
  • 评论最多