这似乎是一个奇怪的问题,但这是我自己无法解决的问题。如果我要说,将诸如 001 之类的数字分配给变量 $add,然后想要执行如下操作:
$me = $add + 1;
手术后如何保持这个数字中“无用”的前导0?
完整概述:
<?php
$add = 001;
$me = $add + 1;
?>
我想要的输出是 002,但我收到的输出只是 2。我也希望能够向后执行此操作,例如从 002 减去 1 得到 001 而不是简单的 1。
这似乎是一个奇怪的问题,但这是我自己无法解决的问题。如果我要说,将诸如 001 之类的数字分配给变量 $add,然后想要执行如下操作:
$me = $add + 1;
手术后如何保持这个数字中“无用”的前导0?
完整概述:
<?php
$add = 001;
$me = $add + 1;
?>
我想要的输出是 002,但我收到的输出只是 2。我也希望能够向后执行此操作,例如从 002 减去 1 得到 001 而不是简单的 1。
如果您总是希望数字为三位数,则可以使用 sprintf
sprintf('%03d', 2); # prints "002"
如果位数是可变的并且取决于原始输入,您必须首先确定您想要多少位数,然后将其放入格式参数中。
此外,在获取起始值时,请确保您不会意外地以八进制获取它(在解析输入字符串时不应该真的发生这种情况,这些将被视为十进制,但在程序中小心使用文字)。
你想要这样的str_pad
事情:
<?php
$add = 001; //starting number
$number_to_pad = $add + 1; // echoing this would write "2"
$desired_length = 3; // adjust accordingly to how long you want you number to be
$output = str_pad($number_to_pad, $desired_length, '0', STR_PAD_LEFT);
// echo $add; // would write out '1'
// echo $number_to_pad; // would write out '2'
echo $output; // writes '002' as desired
?>