php 加上数字保留零作为第一个字符

php plus number keep zero as first character

我有这个代码:

$i = '0001';
$j = $i + 1;

我想得到 0002 但它只给我 2 我怎样才能加上 $i 并保留那个 000?

谢谢

您可以使用 str_pad 来保留前导零。

代码在这里,

<?php
$i = '0001';
$val = $i + 1;
echo str_pad($val,4,"0",STR_PAD_LEFT); // 0001
?>

Click to learn more about str_pad

PHP 从 Perl 中获取了一个有用的特性:使用 ++ 增加字符串的能力。不幸的是,它做得不是很好。如果你递增 "A0001",你会得到 "A0002";但是如果你增加 "0001",你会得到 2(相对于原始的 Perl,它会给你 "0002")。但是,你可以作弊:

$i="0001";
$j=":$a";
$j++;
$j=substr($j, 1);

这更多的是为了说明一件很酷的事情,可能没有多少人知道,以及它是如何被错误实施的,而不是提供一个真正的解决方案;我绝对希望在我的代码中看到 str_padsprintf 解决方案。

也许这可以给你一个想法:

$i = '0001';
$i = intval($i);
$i++;
$a = '000';
$result = $a.$i;
echo $result;

$a$i 之间的 . 将变量连接成一个字符串,保留其中的每个字符。 上面的代码将输出 0002 在这里查看:http://sandbox.onlinephpfunctions.com/code/fc2bd5861a6c0d937568b067e98e06977741019c

如果你想保留所有前导零,你可以单独计算它们并像这样递增。当然,这是快速完成的事情,我 100% 肯定有更好的方法可以做到这一点。