0
$a1 = 010;

print (int)$a1;

打印值 = 8

任何人都可以解释php是如何产生这个结果的?因为十六进制的 010 = 16。

4

2 回答 2

2

它不是十六进制的。是八进制的。

对于十六进制:$a = 0x10;

对于八进制 $a = 010;

对于 HEX 数字,您必须以 0x 开头。

于 2013-11-11T08:55:31.540 回答
2

010以8为10底​​,即8以10为底。

手册的完整参考:

<?php

    $a = 1234; // decimal number
    $a = -123; // a negative number
    $a = 0123; // octal number (equivalent to 83 decimal)
    $a = 0x1A; // hexadecimal number (equivalent to 26 decimal)
    $a = 0b11111111; // binary number (equivalent to 255 decimal)

?>
于 2013-11-11T08:56:02.327 回答