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

发布于 2024-07-15 22:25:40 字数 106 浏览 7 评论 0原文

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

我该如何解决这个问题?

If I have a variable in PHP containing 0001 and I add 1 to it, the result is 2 instead of 0002.

How do I solve this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

許願樹丅啲祈禱 2024-07-22 22:25:40
$foo = sprintf('%04d', $foo + 1);
$foo = sprintf('%04d', $foo + 1);
亚希 2024-07-22 22:25:40

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

echo ("0001" + 1);

...+ 运算符会说:“嗯,这是一个字符串和一个整数。我不知道如何将字符串和整数相加。但我知道如何添加将字符串转换为 int,然后将两个 int 加在一起,所以让我这样做,”然后它将“0001”转换为 1。为什么? 因为将字符串转换为整数的 PHP 规则规定,字符串中任意数量的前导零都会被丢弃。 这意味着字符串“0001”变为 1。

然后 + 表示:“嘿,我知道如何将 1 和 1 相加。结果是 2!” 该语句的输出是 2。

It would probably help you to understand the PHP data types and how they're affected when you do operations to variables of various types. You say you have "a variable in PHP say 0001", but what type is that variable? Probably a string, "0001", since an integer can't have that value (it's just 1). So when you do this:

echo ("0001" + 1);

...the + operator says, "Hm, that's a string and an integer. I don't know how to add a string and an int. But I DO know how to convert a string INTO an int, and then add two ints together, so let me do that," and then it converts "0001" to 1. Why? Because the PHP rules for converting a string to an integer say that any number of leading zeroes in the string are discarded. Which means that the string "0001" becomes 1.

Then the + says, "Hey, I know how to add 1 and 1. It's 2!" and the output of that statement is 2.

心在旅行 2024-07-22 22:25:40

另一个选项是 str_pad() 函数。

$text = str_pad($text, 4, '0', STR_PAD_LEFT);

Another option is the str_pad() function.

$text = str_pad($text, 4, '0', STR_PAD_LEFT);
阳光下的泡沫是彩色的 2024-07-22 22:25:40
<?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
?>
<?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
?>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文