2016-03-21 18 views
0

私はこのコードスニペットをPHPで実行しています。驚いたことに513に数字で奇妙なPHPの動作

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

は、その上の514秒との反響取得し、最初の番号です。ここで何が起こっているのですか?

+6

をチェック形成するために、投稿する前に、文字列と右を使用して終了。先頭のゼロ(01001)を取り除く –

+1

Zipは整数ではありません(あなたが郵便番号について話している場合)。 – chris85

+0

PHPで「0」で始まる数字(例えば、 '01001'など)は、Octal値として扱われます...... [PHPドキュメンテーションと同じように](http://php.net/manual/en/language .types.integer.php#language.types.integer.syntax).... '1001' octalは '513'の小数です –

答えて

0

ゼロ詰めの文字列に変換します

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

私はあなたがオクタル(および小数点)で作業している

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