私はphp関数を構築しようとしていますが、いくつかの奇妙な動作を発見しました.適切な質問を定式化することさえできないので、誰かが何が起こっているのか説明できれば幸いです.
私は先行ゼロを持つ一連の数値を扱っており、それらを維持することが重要ですが、ユーザーが先行ゼロを入力することはほとんどありません。だから私はこれを使用します:
$x = 123;
$n = 5;
$x = str_pad((int)$x,$n,"0",STR_PAD_LEFT);
echo $x;
そして、必要に応じて、これにより 00123 が取得されます。
ユーザーが番号の前にゼロを入力することをテストしたときに、奇妙なことが起こりました
$x = 0123;
$n = 5;
$x = str_pad((int)$x,$n,"0",STR_PAD_LEFT);
echo $x;
これは 00083 を返します。ユーザーが 00123 を入力した場合も同じことが起こります。
その結果は私を完全に当惑させました。ここで何が起こっているのかについての説明を事前にありがとう。