Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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中,如何添加零填充数字字符串并保留零填充?_Php_Variables_String Formatting_Zero Pad - Fatal编程技术网

在PHP中,如何添加零填充数字字符串并保留零填充?

在PHP中,如何添加零填充数字字符串并保留零填充?,php,variables,string-formatting,zero-pad,Php,Variables,String Formatting,Zero Pad,如果我在PHP中有一个包含0001的变量,并向其中添加1,则结果是2,而不是0002 如何解决此问题?另一个选项是函数 $foo = sprintf('%04d', $foo + 1); $text = str_pad($text, 4, '0', STR_PAD_LEFT); 它可能会帮助您理解PHP数据类型,以及当您对各种类型的变量进行操作时,它们是如何受到影响的。你说你有一个“PHP中的变量,比如0001”,但是这个变量是什么类型的?可能是字符串“0001”,因为整数不能有该值(它只有

如果我在PHP中有一个包含
0001
的变量,并向其中添加1,则结果是2,而不是
0002

如何解决此问题?

另一个选项是函数

$foo = sprintf('%04d', $foo + 1);
$text = str_pad($text, 4, '0', STR_PAD_LEFT);

它可能会帮助您理解PHP数据类型,以及当您对各种类型的变量进行操作时,它们是如何受到影响的。你说你有一个“PHP中的变量,比如0001”,但是这个变量是什么类型的?可能是字符串“0001”,因为整数不能有该值(它只有1)。所以当你这样做的时候:

echo ("0001" + 1);
+
操作符说,“嗯,这是一个字符串和一个整数。我不知道如何添加字符串和整数。但我知道如何将字符串转换为整数,然后将两个整数相加,让我来做吧。”然后它将“0001”转换为1。为什么?因为将字符串转换为整数的PHP规则表示,字符串中的任何前导零都将被丢弃。这意味着字符串“0001”变为1

然后,
+
说,“嘿,我知道如何加1和1。它是2!”该语句的输出是2。


<?php
#how many chars will be in the string
$fill = 6;
#the number
$number = 56;
#with str_pad function the zeros will be added
echo str_pad($number, $fill, '0', STR_PAD_LEFT);
// The result: 000056
?>