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