This question already has answers here:
What does a leading zero do for a php int?

(4个答案)


7年前关闭。




我不知道如何用谷歌搜索这个,所以我在这里问。为什么当我声明一个变成61的$something = 0759变量时会发生这种情况。我知道答案必须非常简单,所以请原谅我的愚蠢。

最佳答案

它是一个整数文字,您声明一个带前导零的八进制数。

$something = 0759; // octal

八进制数字系统是一个以8为底的数字系统。
您只能使用0到7之间的数字(其他数字将被舍弃)。
$a = 0759;
$b = 075;
var_dump($a==$b);
// bool(true)

http://www.php.net/manual/en/language.types.integer.php

您可以使用ltrim跳过零。
 $a = ltrim("0759", 0);
 echo $a; // 759
 // and reformat as suggested with str_pad or printf
 echo str_pad($a, 4, "0", STR_PAD_LEFT);

10-06 15:51