2011-02-09 32 views
2
$y = 013; 
echo $y + 5; //this result in 16 

我無法弄清楚它的ans如何16?任何人都可以幫忙嗎?與php算術相關

+0

出於某種原因,它被解釋爲013 11 – Nick 2011-02-09 06:13:55

回答

6

因爲013不是十進制(基數爲10)。它是八進制的(基數8)。十進制值爲: (0 * 8^2)+(1 * 8^1)+(3 * 8^0)= 0 + 8 + 3 = 11

這給出了正確的至少由你)16的結果,當加入5

這個故事的寓意:不預置了一些文字0,除非你知道這意味着什麼

+0

「這個故事告訴我們:不預置了一些文字0,除非你知道這意味着什麼」 我不同意這種說法,因爲它不是所以清楚013是八進制的...因爲在代數013 = 13。但在PHP中,我同意故事的寓意:P – llazzaro 2011-02-09 06:18:35

4

含前導零的數目是八進制數

like

$a = 0123; // octal number (equivalent to 83 decimal 

整數可以用十進制 (基體10),十六進制(基數16),或 八進制被指定(基座8)符號,可選地 前面有符號( - 或+)。

要使用八進制表示法,請在 之前加上0(零)。要使用 十六進制符號在 之前加0x。