I'm trying to build a php function and discovered some weird behavior and I can't even formulate a proper question, so if anyone can explain what is going on, I would appreciate it.
I'm working with a set of numbers with leading zeros, and its important that they be maintained, but users almost never input leading zeros. So I use this:
$x = 123;
$n = 5;
$x = str_pad((int)$x,$n,"0",STR_PAD_LEFT);
echo $x;
and, as desired, this gets me 00123.
The weird stuff happens when I tested for a user inputting a zero before their number
$x = 0123;
$n = 5;
$x = str_pad((int)$x,$n,"0",STR_PAD_LEFT);
echo $x;
This returns 00083. Same thing happens if a user were to input 00123.
That result has me completely bewildered. Thanks in advance for any explanation of what's going on here.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…