给 phper 出一道基本的面试题, 做错了得加强基础了/

2017-03-23 16:11:43 +08:00
 qwe3364925
请输出该结果
echo '6+5' . 9+7;
7425 次点击
所在节点    PHP
74 条回复
hiboshi
2017-03-23 16:15:05 +08:00
6+516
不知道对不对
hiboshi
2017-03-23 16:15:55 +08:00
@hiboshi 面壁去了
wdd2007
2017-03-23 16:16:05 +08:00
13
Immortal
2017-03-23 16:30:36 +08:00
126 么- -
holyghost
2017-03-23 16:33:18 +08:00
你离挨喷还有三十米。
silencefent
2017-03-23 16:36:18 +08:00
不懂为什么是 13 ,能解释下吗?
sxycodecat
2017-03-23 16:36:27 +08:00
13 实际 计算为 6+7
和 “ 123abc ” +1 输出结果为 int 124 一个性质
qwe3364925
2017-03-23 16:37:56 +08:00
@sxycodecat 那么快揭晓答案 , 没意思啦, 我就像看看有多少人会做错
gino86
2017-03-23 16:38:02 +08:00
这道题考的应该是运算符的优先级和类型的转换的吧,然而我做错了。
sxycodecat
2017-03-23 16:38:50 +08:00
@silencefent 字符串类型和数值类型 做运算 只能取到 第一个非数字字符串前的数字进行计算 如果是 “ a6+5 ”.9+7 结果就变成 7 了。
sxycodecat
2017-03-23 16:39:30 +08:00
@qwe3364925 啊哈哈哈 能删吗。 ( ⊙ o ⊙ )!
sxycodecat
2017-03-23 16:44:37 +08:00
@qwe3364925 你把加法换成乘除 又得错一批。 哈哈哈。
silencefent
2017-03-23 16:44:50 +08:00
@sxycodecat 也就是说
echo '6+5' . 9+7
// ‘ 6+59 ’+7=6+7=13
sxycodecat
2017-03-23 16:48:12 +08:00
@silencefent 对头。 不过就加减法 有用。 乘除法输出的结果 又不一样 优先级的问题。
KIDJourney
2017-03-23 16:51:25 +08:00
为什么有人会写这种屎一样的代码呢?
SoulGem
2017-03-23 16:53:21 +08:00
..捂脸
darluc
2017-03-23 16:57:49 +08:00
服!
akira
2017-03-23 16:58:59 +08:00
echo '6+5' . (9+7)
echo '6+5' . 9*7

+-. 这 3 个运算符就不该设定为同一优先级。字符串连接符的优先级设置到最低的话,少好多事情
changwei
2017-03-23 17:16:50 +08:00
现在这种面试题都喜欢考歪门邪道的代码写法。看看 c prime plus 之类的书籍会有考 i+++++i 等于多少之类的习题吗?

碰到代码可能出现结果歧义的坑尽可能用 intval , strval 解决,碰到可能出现优先级歧义的坑用括号括起来这些都是国外很多优秀书籍会强调的地方。而不是写这种含糊不清的代码然后作为坑留给下一个接手的人。
mysterin
2017-03-23 17:59:53 +08:00
你知道“茴”字有多少种写法吗?
不知道,反正用不上。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/349774

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX