プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
PHP、for文の終了条件にはできるだけ処理を書かないでくださいな。
ちょっくら既存プログラムのPHPコードを見ていたら
こんな処理が書いてありましたφ(--)
    for($i = 0; $i < count($record); $i++){
        print $record[$i];
    }

趣味や勉強でやる分には試行錯誤しつつ好きに書けば良いと思うのですが、
お仕事で書く場合はこんな感じにしないと怒られますφ(--)
    $cnt = count($record);
    for($i = 0; $i < $cnt; $i++){
        print $record[$i];
    }

for文の構造ってのはこんなのですよねφ(--)
for(式1; 式2; 式3){
    メインの処理
}

式1がループの開始時に行われる処理です。
さぁこれから回すぜー!ってときに実行されます。

式2がループの終了判定処理です。
この条件判定がfalseになるとループが終了します。

式3がループ毎の後処理です。
forループの中の処理が終わったら毎度毎度動きます。

つまりループ処理の流れは以下のようになる訳です。
[式1]

[式2]=true

[メインの処理]

[式3]

[式2]=true

[メインの処理]

[式3]

[式2]=true

[メインの処理]

[式3]

[式2]=false

ループ終了

一番最初のコード
    for($i = 0; $i < count($record); $i++){
        print $record[$i];
    }

はループする度に(式2の評価時に)「count($record)」が動くので
100回ループしたら100回countしちゃいますよね。

「count($record)」の値がループ内の処理によって変更されない場合は
ループの外で変数に入れちゃった方が処理が単純になるのです。
    $cnt = count($record);
    for($i = 0; $i < $cnt; $i++){
        print $record[$i];
    }

のようにです。
コードは短ければ良いわけじゃないってな好例ですね(--)b

余談ですがこれは似て非なるものなので怒られないですよφ(--)
<?php 
    for($i = count($record); $i > 0; $i--){
        print $record[$i];
    }
?>

「$i = count($record)」部分は一回しか動かないので。
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● PHP  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事