PHP的str_pad()和数字的奇怪行为

Vas*_*das 3 php

$caseid(通常)是一个5位数字(可能更低).我想要一个前导0,这个数字是6位数:

<?php
$caseid=12345;
echo str_pad(strval($caseid), 6-strlen(strval($caseid)), '0', STR_PAD_LEFT); ?>
Run Code Online (Sandbox Code Playgroud)

这不能按预期工作(显示相同的数字).相反,如果我在第二个参数中添加5 str_pad,则可行.

<?php echo str_pad(strval($caseid), 11-strlen(strval($caseid)), '0', STR_PAD_LEFT); ?>
Run Code Online (Sandbox Code Playgroud)

有用.这里有什么错误?

cmo*_*sey 6

你不需要计算你想要它的总字符数的差异.

str_pad(strval($caseid), 6, '0', STR_PAD_LEFT);
Run Code Online (Sandbox Code Playgroud)