【PHP講座】制御構造

女性

前回は配列について学びました。

【PHP講座】配列

2018.08.31

今回は制御構造についてです。

プログラムというのは上から順番に処理されていくのですが。

結果によって処理を変更したいということもあれば。

ある結果になるまで繰り返し処理をしたいということもあるかと思います。

その時に使うのが分岐処理や繰り返しなどの制御構造です。



分岐処理

分岐処理の基本を紹介します。

if文

英語の if と同じなんですが。

条件を満たしていれば、処理をするというような使い方をします。

$a = 5;

if ($a === 5){

	echo '変数 $a の値は 5 です。';
}

上の例だとまず $a に 5 が代入され、次の if で $a が型も値も 5 に等しければ、{} で囲まれた部分が処理されます。

if~else文

if だけだと条件を満たさない場合は処理をせずにそのまま抜けてしまうだけになりますが。

条件を満たさない場合に満たす場合と別の処理をさせるときにこの if~else文 を使います。

$a = 1;

if ($a === 5){

	echo '変数 $a の値は 5 です。';
}
else
{
	echo '変数 $a の値は 5 以外です。';
}

この場合、出力されるのは 変数 $a の値は 5 以外です。 が表示されます。

if~elseif文

if~else文は条件が成立するしないで処理が二つに分かれるのがポイントでした。

今回の if~elseif文は 複数の条件を順番に指定していくことができます。

$a = 1;

if ($a === 5){
// 条件1($a === 5)を満たした
	echo '変数 $a の値は 5 です。';
}
else if ($a === 2) {
// 条件1($a === 5)を満たしていないが条件2を満たした
	echo '変数 $a の値は 2 です。';
}
else if ($a === 3) {
// 条件1($a === 5)、条件2($a === 2)を満たしていないが条件3($a === 3)を満たした
	echo '変数 $a の値は 3 です。';
}
else {
// 条件1、条件2、条件3を満たしていない
	echo '変数 $a の値は 2、3、5 以外です。';
}

この例だとわかりにくいのですが。

ポイントは上から順番に絞り込みがされていくところです。

条件1 の段階で条件を満たせば、条件1の処理だけされて if~elseif文を抜けます。

満たしていない場合は、次の条件2 の判定へ移るわけです。

switch文

実は上の例は if~elseif文より今回の switch文の方が向いてます。

$a = 1;

switch ($a)
{
	case 5:
		echo "5 です。";
		break;
	case 2:
		echo "2 です。";
		break;
	case 3:
		echo "3 です。";
		break;
	default:
		echo "2、3、5 以外です。";
		break;
}

値を列挙していき、それに対しての処理を分ける場合に便利です。

ただし if文のように条件に値の範囲を記述するようなことはできません。

break; という処理が出てきていますが。

これは終了まで一気にジャンプするということで、この場合 switch文の最後の } までジャンプします。

あと case と defalut の末尾は:(コロン)なので注意してください。



ループ処理

ループ処理の基本を紹介します。

while文

もっとも簡単なループ文です。

$cnt = 1;

while ($cnt < 5)
{
	echo $cnt . '回目。<br />'
	++$cnt;
}

この処理の結果は。

1回目。
2回目。
3回目。
4回目。

というようになります。

$cnt < 5 という条件が真である(満たしている)限り、ずっと処理が繰り返されます。

$cnt が 5 の段階で条件を満たさなくなるので、ループ処理を抜けます。

for文

おそらくこちらの方がわかりやすいのではないでしょうか。

初期化、ループ条件の判定、条件の変化をまとめて書きます。

for ($cnt = 1; $cnt < 5; ++$cnt)
{
	echo $cnt . '回目。<br />';
}

このプログラムは、先程の while文 で書いたものと同じ内容です。

foreach文

配列の要素の数だけ処理が繰り返されるというものです。

$arr = array(10,20,30,40,50);

foreach ($arr as $key => $val)
{
	echo 'キー' . $key . 'の値は' . $val . 'です。<br />';
}

まず、array関数を使って配列 $arr を初期化しています。

そして foreach文です。

配列の要素の数だけ処理が繰り返されます。

従って結果は。

キー0の値は10です。
キー1の値は20です。
キー2の値は30です。
キー3の値は40です。
キー4の値は50です。

となります。

最後に

女性

いかがでしょうか。

種類が色々ありますが、違いを理解して適切な構文を使えるようにがんばります。

次回は、関数についてです。

【PHP講座】関数

2018.09.02

プログラムらしくなってきましたね。

基礎ですけど確実にやっていきましょう。