2010-06-25 56 views
1
echo 1/3; 

我期待上面的输出0,但实际上PHP是足够聪明输出0.33333333333333从什么时候开始PHP的autocast整数浮动?

从什么时候开始PHP对这样的表现?

+0

它没有,但它铸造一个数学表达式(1/3)的结果为浮点 – 2010-06-25 08:29:43

+0

有清凉回答您的问题(s),接受一个! ;) – acm 2010-06-25 08:52:44

回答

12

它一直表现得如此。参见:http://php.net/manual/en/language.operators.arithmetic.php

除法运算符(“/”),除非两个操作数 为整数(或得到 转换为整数字符串)和数字 是整除返回 浮点值,在这种情况一个 整数值将被返回。

+0

不是'1'和'3'已经是一个'整数'了吗? – wamp 2010-06-25 07:39:54

+6

@wamp:是的,但1不能被3整除。 – 2010-06-25 07:42:48

1

PHP不是强类型语言。它一直都在做这样的事情。

据我所知,PHP从一开始就是这样设计的。

+1

似乎我从一开始就误解了PHP ... – wamp 2010-06-25 07:36:22

+0

最疯狂的是从字符串到整数的自动转换,如果字符串只包含数字... – 2010-06-25 08:16:21

0

我想说这是预期的行为。

如果你想要一个整数,强制转换:

echo (int)(1/3); 
+0

是不是'1'与'(int)1'相同? – wamp 2010-06-25 07:40:17

+0

@wamp你是对的。我还没有真正清醒:) – 2010-06-25 07:43:27

+0

PHP不是一种强类型语言。所以1可以是'1',1,1.00,“1”等.... – Lizard 2010-06-25 07:43:36

相关问题