PHP 一道让人郁闷的题目

2017-11-21 09:32:42 +08:00
 OMGZui
echo "1+5=". 5+1; // 2
echo "1+5=". 1+5; // 6
echo "5+1=". 5+1; // 6
echo "5+1=". 1+5; // 10

只知道结果是第一个数和最后一个数相加得来的,运行时报错 A non well formed numeric value encountered

个人猜测是运算符优先级问题和 PHP 弱类型? google 了半天也没找到解释,有大神指点吗?

5314 次点击
所在节点    PHP
39 条回复
iccfish
2017-11-21 13:32:04 +08:00
PHP 真是一门神奇的语言啊哈哈哈哈哈哈哈哈哈
checgg
2017-11-21 13:47:46 +08:00
又来黑 PHP。。。。
lsls931011
2017-11-21 13:47:58 +08:00
@Smilecc 正解,这个在 PHP 手册上有写过
dangyuluo
2017-11-21 13:50:11 +08:00
来,你会不会回字的四种写法?
囘 囬 廻 迴
GGGG430
2017-11-21 13:54:17 +08:00
不就是个隐式转换
fengyqf
2017-11-21 14:50:29 +08:00
咱能多看看手册吧,至少语言参考一章,一字不落的看三遍。
所有编程语言的手册,中文最全面的恐怕就是 PHP 了(没有之一).

不得不说,php 里+-.三个运算符同优先级,还有隐式数字转换,都是坑
kobe123
2017-11-21 15:03:33 +08:00
楼上黑 php 的我也是呵呵了。php 本来就是弱数据类型语言,它的定位就是易上手,快速开发。这不是坑,这叫做语言特性。上来就黑某一门语言 只能表现出你的无知和幼稚!!!
laoyuan
2017-11-21 15:07:14 +08:00
这几道题不算什么,我来出一道

echo '9,999' + 1;
yongjing
2017-11-21 15:27:46 +08:00
@laoyuan 道理跟上面一样
laoyuan
2017-11-21 16:22:21 +08:00
LS 你来告诉我答案啊
msg7086
2017-11-21 19:20:30 +08:00
还有这种题:
$a = '9d9';
$a++;
$a--;
echo $a;
yangbin9317
2017-11-21 19:20:59 +08:00
很简单啊

"1+5=". 5 是 "1+5=5"

"1+5=5" + 1 "1+5=5" 被转为 1 也就是 1 + 1 也就是 2
bramblex
2017-11-21 19:25:04 +08:00
胡乱转了类型还不跟你说一声, 所以我们才称 php 为世界上最好的语言
kookxiang
2017-11-21 20:39:37 +08:00
谭语言?
jhdxr
2017-11-21 22:22:38 +08:00
@bramblex 你没看到帖子里写了『 A non well formed numeric value encountered 』,瞎了的话尽早去看眼科
sagaxu
2017-11-22 09:03:36 +08:00
php 也需要来一本 the good part 了,中文名 php 精粹,然后写完发现只有 20 页
bramblex
2017-11-22 09:27:16 +08:00
@jhdxr

我倒是觉得你可能需要去看看自己有没有得狂犬病, 怎么跟个野狗一样见人就咬?
slgz
2017-11-22 12:01:20 +08:00
作为一个两年的 phper,没看到回复,还真不知道答案,是不是很失败
chnyang
2017-11-22 13:50:06 +08:00
@slgz ...2 年经验面试应该不会问这种,所以还好

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

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

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

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

© 2021 V2EX