目次
はじめに
前回の基本構文とデータ型の解説に続き、今回はPHPの制御構文とループについて学んでいきます。プログラムの流れを制御する these重要な構文を理解することで、より複雑な処理が可能になります。
条件分岐(if文)
基本的なif文
$age = 20;
if ($age >= 20) {
echo "成人です";
} else {
echo "未成年です";
}
else if(elseif)を使った複数条件
$score = 85;
if ($score >= 90) {
echo "評価A";
} elseif ($score >= 80) {
echo "評価B";
} elseif ($score >= 70) {
echo "評価C";
} else {
echo "評価D";
}
比較演算子
==
: 等しい===
: 型も含めて等しい(推奨)!=
: 等しくない>
: より大きい<
: より小さい>=
: 以上<=
: 以下
// 型の厳密な比較の例
$value1 = "100"; // 文字列
$value2 = 100; // 整数
if ($value1 == $value2) { // true
echo "値は等しい\n";
}
if ($value1 === $value2) { // false
echo "型も含めて等しい\n";
}
switch文
複数の条件分岐をより見やすく書ける場合があります:
$fruit = "りんご";
switch ($fruit) {
case "りんご":
echo "赤いフルーツです";
break;
case "バナナ":
echo "黄色いフルーツです";
break;
case "ブドウ":
echo "紫のフルーツです";
break;
default:
echo "その他のフルーツです";
}
ループ構文
for文
決まった回数の繰り返しに使用します:
// 1から10までの数を表示
for ($i = 1; $i <= 10; $i++) {
echo $i . "\n";
}
while文
条件が真の間、処理を繰り返します:
$count = 0;
while ($count < 5) {
echo "カウント: " . $count . "\n";
$count++;
}
foreach文
配列の要素を順番に処理する際に使用します:
$fruits = ["りんご", "バナナ", "オレンジ"];
foreach ($fruits as $fruit) {
echo $fruit . "\n";
}
// キーと値を取得する場合
$scores = [
"国語" => 85,
"数学" => 90,
"英語" => 88
];
foreach ($scores as $subject => $score) {
echo $subject . ": " . $score . "点\n";
}
実践的な例:ユーザー管理システム
以上の制御構文を組み合わせた実践的な例を見てみましょう:
<?php
// ユーザーデータ
$users = [
[
"id" => 1,
"name" => "山田太郎",
"age" => 25,
"membership" => "premium"
],
[
"id" => 2,
"name" => "鈴木花子",
"age" => 30,
"membership" => "standard"
],
[
"id" => 3,
"name" => "佐藤次郎",
"age" => 19,
"membership" => "trial"
]
];
// ユーザー情報の処理
foreach ($users as $user) {
echo "ユーザーID: " . $user["id"] . "\n";
echo "名前: " . $user["name"] . "\n";
// 年齢による処理
if ($user["age"] >= 20) {
echo "成人ユーザー\n";
} else {
echo "未成年ユーザー\n";
}
// 会員種別による処理
switch ($user["membership"]) {
case "premium":
echo "プレミアム会員特典が利用可能です\n";
break;
case "standard":
echo "標準的な機能が利用可能です\n";
break;
case "trial":
echo "お試し期間中です\n";
break;
}
echo "-------------------\n";
}
注意点とベストプラクティス
- コードの可読性
- インデントを適切に使用する
- 複雑な条件は変数に分割する
- 無限ループの防止
- while文では必ず終了条件を確認
- ループ内で終了条件が更新されているか確認
- break と continue
- break: ループを抜ける
- continue: 次のループへスキップ
// breakとcontinueの使用例
for ($i = 1; $i <= 10; $i++) {
if ($i == 3) {
continue; // 3をスキップ
}
if ($i == 8) {
break; // 8で終了
}
echo $i . "\n";
}
まとめ
今回は、PHPの制御構文とループについて学びました。これらの構文を使いこなすことで、より柔軟なプログラムの作成が可能になります。
練習問題
- 1から100までの数字の中で、3の倍数のときは「Fizz」、5の倍数のときは「Buzz」、両方の倍数のときは「FizzBuzz」と表示するプログラムを作成してください。
- 以下の配列を使って、各生徒の平均点を計算し、80点以上の生徒だけを表示するプログラムを作成してください:
$students = [
["name" => "田中", "scores" => [85, 90, 88]],
["name" => "山田", "scores" => [76, 82, 72]],
["name" => "佐藤", "scores" => [90, 95, 93]]
];
次回は関数とスコープについて解説していきます。お楽しみに!
コメント