Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 理解带前导零的str_pad()_Php_Octal - Fatal编程技术网

Php 理解带前导零的str_pad()

Php 理解带前导零的str_pad(),php,octal,Php,Octal,我正在尝试构建一个php函数,发现了一些奇怪的行为,我甚至不能提出一个正确的问题,所以如果有人能解释这是怎么回事,我将不胜感激 我正在处理一组带前导零的数字,维护它们很重要,但用户几乎从不输入前导零。所以我用这个: $x = 123; $n = 5; $x = str_pad((int)$x,$n,"0",STR_PAD_LEFT); echo $x; 而且,正如所希望的,这让我得到00123 奇怪的事情发生在我测试一个用户输入数字前的零时 $x = 0123; $n = 5; $x = st

我正在尝试构建一个php函数,发现了一些奇怪的行为,我甚至不能提出一个正确的问题,所以如果有人能解释这是怎么回事,我将不胜感激

我正在处理一组带前导零的数字,维护它们很重要,但用户几乎从不输入前导零。所以我用这个:

$x = 123;
$n = 5;
$x = str_pad((int)$x,$n,"0",STR_PAD_LEFT);
echo $x;
而且,正如所希望的,这让我得到00123

奇怪的事情发生在我测试一个用户输入数字前的零时

$x = 0123;
$n = 5;
$x = str_pad((int)$x,$n,"0",STR_PAD_LEFT);
echo $x;
这将返回00083。如果用户输入00123,也会发生同样的情况


那个结果使我完全不知所措。提前感谢您对这里发生的一切进行解释。

0
开头的整数文本将被解释为base 8。第二个
$x
的值为83。详情请参阅

intval()
函数允许您在读取用户字符串时指定基数


如果我们谈论的是文字,在PHP中,文字
0
是十进制的,而在PHP中是八进制的。正是这些微小的差异让生活变得有趣。

0
开头的整数文本被解释为base8。第二个
$x
的值为83。详情请参阅

intval()
函数允许您在读取用户字符串时指定基数


如果我们谈论的是文字,在PHP中,文字
0
是十进制的,而在PHP中是八进制的。正是这些小小的差异让生活变得有趣。

我将研究如何保持用户输入基数10。现在我知道要研究什么了,非常感谢!如果您正在读取用户字符串,那么该函数允许您指定基数。我刚才说的是文字。我将研究如何保持用户输入基数为10。现在我知道要研究什么了,非常感谢!如果您正在读取用户字符串,那么该函数允许您指定基数。我只是在说文字。