2010-06-25 86 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

相關問題