为什么PHP substr函数返回错误的值?

时间:2018-07-22 10:53:06

标签: php

这是示例代码:

<?php

$number = 0130;
$a1     = substr($number,0,1);  
$a2     = substr($number,1,1);
$a3     = substr($number,2,1);
$a4     = substr($number,3,1);
$a      = [$a1,$a2,$a3,$a4];

echo $a1;   

我得到的结果是8为什么不0

2 个答案:

答案 0 :(得分:3)

因为0130octal number literal(由于0前缀),所以它的实际值为十进制88。 (只需尝试echo $number;自己看看即可。)

因此,substr('88', 0, 1);8

答案 1 :(得分:0)

0130是一个octal number,其值为88
将您的数字放在引号之间(即使将其转换为字符串也会转换88):

$number = '0130';