2011-02-09 35 views
4
$y = 07; 
echo 'Y: '.$y; // result is 7 
$y = 08; 
echo 'Y: '.$y; // result is 0 

view demo爲什麼在給定輸出下面有區別?

:編輯:

還有一個類似

$y = 013; 
echo $y + 5; //this result in 16 

我無法弄清楚它怎麼答爲16?任何人都可以幫忙嗎?

+0

是否有一個原因是你的數字預先加0? – 2011-02-09 05:43:01

+0

@Brian Driscoll:沒有理由......通過瀏覽一些與php相關的問題,我發現了這個問題。 – 2011-02-09 05:45:23

回答

6

第1部分

用於解析規則在Integers Documentation進行說明。

在PHP中,以0開頭的數字假定爲Octal。由於08八進制是無效的,你越來越0

第2部分

同樣的問題在玩,013八進制是十進制11和11 + 5 = 16

+0

Alker。一個資料性的回答 – 2011-02-09 05:45:41