$caseid
(通常)是一個5位數字(可能會更低)。我希望有一個0領先,這樣的數字是6位數字:PHP的str_pad()和數字的奇怪行爲
<?php
$caseid=12345;
echo str_pad(strval($caseid), 6-strlen(strval($caseid)), '0', STR_PAD_LEFT); ?>
預期這不起作用(顯示相同的號碼)。相反,如果我添加5到第二個參數str_pad
,它的作品。
<?php echo str_pad(strval($caseid), 11-strlen(strval($caseid)), '0', STR_PAD_LEFT); ?>
它的工作原理。這裏有什麼錯誤?
如果您閱讀http://php.net/manual/en/function.str-pad.php的文檔,那麼您會看到如果第二個參數是負數,小於或等於第一個參數的長度。 – Cyclonecode
'str_pad'的第二個參數是'pad_length'。這是你想要返回的字符串的時間。你爲什麼要做'6 strlen(strval($ caseid))'?這是1.根據[docs](http://php.net/manual/en/function.str-pad.php):「如果pad_length的值是負值,小於或等於長度輸入字符串,不發生填充。「 –