プログラムには、同じ処理を一定回数繰り返したいときがよくあります。
そんなときに使われるループ文です。
ここではPHPループ文の代表的なものを見ていきたいと思います。
PHP ループ文
ループ文はその名の通り同じ処理を繰り返し実行するためのものです。
いくつか種類があるので順番に紹介していきます。
for文
for文は条件が真である限りプログラムを繰り返すものです。
こんな文法です。
for(初期化式; 条件式; 初期値を変化させるための式){ 条件が真の時に実行するプログラム; }
for文には「初期化式」「条件式」「初期化式を変化させるための式」が出てきます。
最初に設定した「初期化式」を「初期化式を変化させるための式」を使い徐々に変化させ、「条件式」が偽になるまでプログラムを繰り返します。
はっきり言ってこれだけでは全然わからないので、実際に使っているところを見てみたいと思います。
PHP
<?php for($i=1; $i<5; $i++){ echo "繰り返し{$i}回目<br/>\n"; } ?>
ブラウザ
繰り返し1回目 繰り返し2回目 繰り返し3回目 繰り返し4回目
はじめに「変数$i」に1を代入しておきます。これが初期化式に当たります。この式がプログラム実行のスタートとなります。
続いて設定するのが条件式。今回は「$i<5」を設定したので、初期化式が5を超えるまでの間プログラムが実行される仕組みとなります。
最後に設定するのが初期化式を変化させるための式です。
ここでは「$++」を設定しています。初期化式を条件式で判断し真の場合、初期化式をインクリメントして再び条件式で判断する仕組みです。偽になった時点でプログラムは終了されます。
この仕組みを使ってプログラムをループさせています。
while文
while文もfor文と同じで、条件が真である限りプログラムを繰り返すものです。
しかし文法が少し変わり、注意点もあるので気を付ける必要があります。
while(条件式){ 条件が真の時に実行するプログラム; }
while文は、for文でいうところの「初期化式」を別で準備してあげないと、プログラムは実行されません。
またインクリメントのように、初期化式を変化させるための式もプログラム内に記述しておかないと、無限ループにはまてしまうので注意してください。
先ほどのfor文と同じプログラムをwhile文で書いてみるとこんな感じになります。
PHP
<?php $i=0 for($i<5;){ echo "繰り返し{$i}回目<br/>\n"; $i++; } ?>
ブラウザ
繰り返し1回目 繰り返し2回目 繰り返し3回目 繰り返し4回目
繰り返すプログラム内に、条件が偽に近づくような式を書いてあげることで、無限ループを避けられます。
最後に
ループ文はとても便利で、WordPressのプログラム内にもよく出てきます。
これを覚えたらPHPでできることの幅も一気に広がるので面白くなってくると思います。