制御文
これも、どの言語にも共通のものです。では、PHPでの用法を簡単に見て行きましょう。大体、C言語とよく似てますね(^^ゞ
if 文
if 文は、条件を判定する事で処理の流れを変えることが出来ます。基本的な書式は以下の通りです。(式)がtrueであれば文を実行し、falseであれば無視します。
if (式) 文; 文が1つ以上の場合は大括弧{ }でくくります。
if (式) { 文1; 文2; } if 文は上記のような単純なif 文だけでなく、if-else文も実行できます。この場合、(式)がtrueの時は文1が実行され、falseの時は文2が実行されます。
if (式) { 文1; } else { 文2; } これまでは条件式が1つだけでしたが、もう1つ条件を加える事も出来ます。条件式が2つある時は、if-elseif-else文を使います。この場合、(式1)がtrueの時は文1が実行され、falseの時は(式2)を評価します。(式2)がtrueの時は文2が実行されますが、falseの時は文3が実行されます。
if (式1) { 文1; } elseif (式2) { ←C言語では、「else if」と間を空ける。 文2; } else { 文3; } ここで、elseifの部分はいくつあっても構いません。つまり、条件文はいくつでも設定できると言う事です。尚、if 文は、他のif 文の中で無限に入れ子構造にする事が出来ます。
switch文
switch文は、同じ変数を異なる値と比較し、値に応じて異なった文を実行したい場合に用います。書式は以下の通りです。
switch (変数) { case 値1: 文1; break; ←条件が一致した所で処理を終了させたい時に必要。 case 値2: 文2; break; case 値3: 文3; break; ................ default: ←条件が一致するものがない場合、デフォルトの処理を提示する。 文n; } case式は、スカラー型に式を評価する任意の式、つまり、整数、浮動小数点、文字列とする事が出来ます。配列又はオブジェクトは、単純な型にキャストされていない限り使用する事が出来ません。
while文
whileループは、PHPで最も簡単なタイプのループです。書式は以下の通りです。
while (式) 文; 以下も同じ。 while (式) { 文; } (式)がtrueの間、文を実行します。(式)が初めからfalseの場合は、文は1回も実行されません。
do...while文
do...whileループは、論理式のチェックが各反復の最初ではなく最後に行われます。通常のwhileループとの主な差は、do...whileループは最低1回の実行を保証されている点です。書式は以下の通りです。
do { 文; } while (式) 初めに文を実行し、式がtrueの間、文を実行します。
for文
forループは、PHPで最も複雑なループです。書式は以下の通りです。
for (式1; 式2; 式3 ) 文; 又は、 for (式1; 式2; 式3 ) { 文; } 式1は、ループ開始時に無条件で実行されます。各繰り返しの開始時に式2が評価され、その式の値がtrueの場合ループは継続され、括弧内の文が実行されます。式2がfalseの場合、ループの実行は終了します。各繰り返しの後、式3が実行されます。
実際のスクリプトでは、ここの掲示板やチャットなどのように、ファイルに記録された書き込み記事を一行ずつ読み出して、ブラウザに順番に表示していく時などに使われています。又ご参照下さい。
foreach文
PHP4の新機能には、Perlや他の言語によく似たforeach構文があります。これにより配列要素に関する反復処理が容易になります。この構造には以下の2種類があり、2番目の構文は最初の構文の便利な拡張になっています。
foreach ( array_expression as $value ) statment ↓便利な拡張型 foreach ( array_expression as $key => $value ) statment 最初の形式は、array_expressionで指定した配列に関してループ処理を行います。各ループにおいて現在の要素の値が$valueに代入され、内部配列ポインタが1つ前に進められます。よって、次のループでは次の要素を見る事になります。以下に実際のプログラム例を見てみましょう。
<?php $mem = array ("Yamada", "Suzuki", "Nakata"); foreach ( $mem as $val) { print $val . "<BR>"; } ?> ▼実行結果 Yamada Suzuki Nakata 2番目の形式も同様ですが、各ループで現在の要素のキー(インデックス)が変数$keyに代入される所が異なります。こちらも、実際のプログラム例を見てみましょう。
<?php $mem = array ( "氏名" => "Yamada", "住所" => "岡山", "職業" => "会社員" ); foreach ( $mem as $key => $val) { print $key . "=" . $val . "<BR>"; } ?> ▼実行結果 氏名=Yamada 住所=岡山 職業=会社員 多次元配列のforeach文
次に、多次元配列を扱う場合の実際のプログラム例も見てみましょう。
<?php $mem = array ("Yamada" => array ( "住所" => "岡山", "年齢" => "25", "職業" => "会社員"), "Suzuki" => array ( "住所" => "広島", "年齢" => "30", "職業" => "公務員") ); foreach ( $mem as $key => $val) { print "氏名:" . $key . "<BR>"; foreach ( $val as $final_key => $final_val ) { print $final_key . ":" . $final_val . "<BR>"; } print "<BR>"; } ?> ▼実行結果 氏名:Yamada 住所:岡山 年齢:25 職業:会社員 氏名:Suzuki 住所:広島 年齢:30 職業:公務員 break文
break文は、switch文だけでなく、for、while、do...while文などでも、同じようにループ処理から強制的に抜け出る事が出来ます。
break文は、breakに引数を渡す事でネストした任意のループから抜け出すことも出来ます。引数はbreak文から見たループのレベルです。以下に実際のプログラム例を見てみましょう。
<?php $i = 0; while (++$i) { switch ($i) { case 3: ↓「\」は、エスケープシーケンスです。 print "\$i = 3 でswitch文を抜けます。<BR>"; break 1; case 5: print "\$i = 5 でswitch文とwhile文を抜けます。<BR>"; break 2; default: break; } } ?> ▼実行結果 $i = 3 でswitch文を抜けます。 $i = 5 でswitch文とwhile文を抜けます。 continue文
continue文は、ループ構造において現在の繰り返しループの残りの処理をスキップして、次の繰り返しの最初から実行を続ける為に使われます。
continue文では、break文と同様にオプションの引数で処理をスキップするループ構造のレベルの数を指定出来ます。
演算子 前へ
次へ require文とinclude文