1.腳本啓動:怪異輸出,當數與0
$num = "00445790";
echo $num;
回報:
00445790
2.腳本
$num = 00445790;
echo $num;
回報:
2351
有人可以解釋爲什麼我在第二個腳本上獲得2351
?
1.腳本啓動:怪異輸出,當數與0
$num = "00445790";
echo $num;
回報:
00445790
2.腳本
$num = 00445790;
echo $num;
回報:
2351
有人可以解釋爲什麼我在第二個腳本上獲得2351
?
Integers
以零開始考慮八進制。由於八進制整數僅使用0到8之間的數字,因此忽略來自9
的所有內容。
所以00445790
變成004457
這就是2351
十進制。
謝謝,這真的清除了它。我很困惑,爲什麼會發生這種情況,但這很有道理!再次感謝。 –
這聽起來很奇怪。即使PHP是一種解釋器語言,它也可以發現數字序列在某種程度上是不正確的(如果前導零是主要的,那麼這是一個錯誤的八進制)並且應該發出警告。或者認識到它實際上是一個十進制數,並將其視爲如此。 (我的PHP日子已經有一段時間了...) –
@ThomasKilian一個警告將有助於這樣的情況,而不是一個潛在的難以發現的錯誤。 –
你需要了解的數據類型 –
這裏是從哪裏開始http://php.net/manual/zh/language.types.php – RiggsFolly
我重新打開這個問題,原來的複製沒有涵蓋' 9'在號碼。 –