PHP Tips [制御構造]

do~while文

書式

do { 処理; } while (条件式);

必ず1回は処理を実行してから条件式がTRUEの間、繰り返し処理を実行します。

解説

配列の値すべての処理の実行を終えると繰り返しを終了します。 下記「使用例」は定義した添字と値を表示する例です。 $hensu = array('Suzuki' => 'Guitar', 'Takahashi' => 'Bass', 'Tanaka' => 'Drum'); の部分で、連想配列の値を$hensuに代入しています。 そしてforeach文の中で添字を$key、値を$valueに代入して表示しています。 (参考) 配列以外のデータを処理しようとするとエラーになります。 そのためforeach文の前にis_array関数(受け取った値が配列かどうかを判断する)でチェックし、 配列であると判断された場合のみforeach文を実行するようにした方がより安全です。 if (is_array($hensu) === TRUE) { foreach ~ }

使用例1

<?php
    $items = array('Guitar', 'Bass', 'Drum');
    $cnt = count($items);
    $i = 0;
    
    do {
        echo $items[$i] . '<br />' . "\n";
        $i++;
    } while ($i < $cnt);  
?>

処理結果

Guitar Bass Drum

使用例2 : while文との違い(do~while文)

<?php
    $i = 3;
    $maxValu = 3;
    do {
        echo $i . '<br />' . "\n";
        $i++;
    } while ($i < $maxValu);
?>

処理結果

3

使用例3 : while文との違い(while文)

<?php
    $i = 3;
    $maxValu = 3;
    while ($i < $maxValu) {
        echo $i . '<br />' . "\n";
        $i++;
    };
?>

処理結果

(何も表示されません)