如果我在 PHP 中有一个变量,0001
并且我在其中添加 1,则结果是 2 而不是0002
.
我该如何解决这个问题?
如果我在 PHP 中有一个变量,0001
并且我在其中添加 1,则结果是 2 而不是0002
.
我该如何解决这个问题?
$foo = sprintf('%04d', $foo + 1);
它可能会帮助您了解 PHP 数据类型以及当您对各种类型的变量进行操作时它们如何受到影响。你说你有“PHP中的一个变量说0001”,但那个变量是什么类型的?可能是一个字符串“0001”,因为整数不能具有该值(它只是 1)。所以当你这样做时:
echo ("0001" + 1);
...+
操作员说,“嗯,这是一个字符串和一个整数。我不知道如何添加一个字符串和一个 int。但我知道如何将一个字符串转换为一个 int,然后将两个 int 加在一起,所以让我这样做,”然后它将“0001”转换为1。为什么?因为将字符串转换为整数的 PHP 规则表明字符串中任意数量的前导零都将被丢弃。这意味着字符串“0001”变为1。
然后+
说,“嘿,我知道如何将 1 和 1 相加。它是 2!” 该语句的输出为 2。
另一种选择是str_pad()函数。
$text = str_pad($text, 4, '0', STR_PAD_LEFT);
<?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
?>