奇怪的php数字行为

奇怪的php数字行为,php,Php,我正在用php运行这个代码片段 for ($zip=01001;$zip<99950;$zip++){ // DO WORK WITH MYSQL sleep(0.04); echo $zip; } for($zip=01001;$zip将其转换为零填充字符串: for ($zip=1001; $zip<99950; $zip++){ $zip = sprintf("%05d", $zip); // $zip is now a string

我正在用php运行这个代码片段

for ($zip=01001;$zip<99950;$zip++){
// DO WORK WITH MYSQL
    sleep(0.04);    
    echo $zip;
}

for($zip=01001;$zip将其转换为零填充字符串:

for ($zip=1001; $zip<99950; $zip++){
    $zip = sprintf("%05d", $zip);
    // $zip is now a string ranging from "01001" to "99949"
}

for($zip=1001;$zip我在发布到表单检查之前使用了字符串和

if (strlen($zip)<5){
    $zip5Digits = "0"."$zip";
}

if(strlen($zip)您使用的是八进制(和小数)。去掉前导零(01001)zip不是整数(如果您谈论的是邮政编码)。PHP中以
0
开头的数字(如
01001
)被视为八进制值……。
1001
octall是
513
decimal您如何预加零?当我在$zip上执行操作时,零必须存在。只需将括号括起来?将其作为字符串提交;邮政编码(如电话号码)实际上不是数字