はじめに
PHPを使ったWeb開発の基礎からオブジェクト指向までを学習しました。
学習の目的は以下です:
- RubyやJavaでの理解を活かし、PHPでのWebアプリ開発に対応できるようになる
- 配列・関数・クラス・例外処理など、実務でよく使う機能を整理する
- Qiitaに自分用のチートシートとしてまとめ、振り返りをしやすくする
気づき・学んだこと
- 🔹 PHPの関数はRubyに比べてスネークケースが多い
- 🔹 配列操作やforeachループは実務で頻出
- 🔹 PHPのクラス設計はJavaに近く、オブジェクト指向を意識しやすい
- 🔹 staticやアクセス修飾子を理解すると設計力が上がる
- 🔹 例外処理や組み込みクラス(DateTimeなど)を使うと安全で堅牢なコードが書ける
- 🔹 配列操作(ソート、連想配列の扱い)や2次元配列はゲームや表データの実装でよく使う
PHP学習まとめ
🟢 基本文法
🟩 変数・定数
$var = 100; // 🟩 変数
define("PI", 3.14); // 🟨 定数
🔵 文字列
$name = "勇者";
echo "こんにちは、$name!"; // 🔵 文字列展開
🟠 配列
🟣 インデックス配列
$items = ["剣", "盾", "ポーション"];
echo $items[0]; // 剣
🟡 連想配列
$items = ["剣"=>100, "盾"=>50];
echo $items["剣"]; // 100
🔹 ループ
// 🔸 for
for ($i = 0; $i < count($items); $i++) {
echo $items[$i];
}
// 🔹 foreach
foreach ($items as $key => $value) {
echo "$key : $value";
}
🟣 関数
🟩 定義と呼び出し
function sum($x, $y) { // 🟩 関数定義
return $x + $y;
}
echo sum(3, 5); // 🔵 関数呼び出し
🟨 スコープ
- 🟢 関数内で定義した変数は外から参照不可
- 🔹 global で外部変数を呼び出すことも可能
🟠 クラスとオブジェクト
🟩 クラスの基本
class Player { // 🟩 クラス定義
public $name;
public function __construct($name) { // 🟨 コンストラクタ
$this->name = $name;
}
public function attack($enemy) { // 🔹 メソッド
echo "{$this->name}は{$enemy}を攻撃した!\n";
}
}
$hero = new Player("勇者"); // 🔵 インスタンス化
$hero->attack("スライム"); // 🔹 メソッド呼び出し
🟨 アクセス修飾子
- 🟢 public: 外部からアクセス可能
- 🔸 private: クラス内のみアクセス可能
- 🔹 protected: 継承クラスからもアクセス可能
🟣 継承とオーバーライド
class Wizard extends Player {
public function attack($enemy) {
echo "{$this->name}は{$enemy}に魔法を放った!\n";
}
}
$wizard = new Wizard("魔法使い");
$wizard->attack("スライム");
🔵 クラス変数・クラスメソッド(static)
class Item {
public static $tax = 1.08;
public static function getTotalAmount($price, $quantity) {
return round($price * $quantity * self::$tax);
}
}
$total = Item::getTotalAmount(120, 15);
echo "合計金額は$total 円です。\n";
🟡 例外処理
try {
$date = new DateTime("199x-01-01");
echo $date->format('Y/m/d') . "\n";
} catch (Exception $e) {
echo "不正な日付です: " . $e->getMessage() . "\n";
} finally {
echo "処理終了\n";
}
🔴 配列操作(並び替え・検索)
$numbers = [3, 1, 4, 2];
sort($numbers); // 昇順
rsort($numbers); // 降順
$items = ["剣"=>100,"盾"=>50];
asort($items); // value昇順
arsort($items); // value降順
ksort($items); // key昇順
krsort($items); // key降順
🟣 まとめ
- 🟢 変数・配列・関数・クラスは基本の構造
- 🔵 文字列展開やループはよく使う
- 🟠 クラス・オブジェクト・継承は実務でも必須
- 🔴 配列操作・例外処理も実務で頻出
- 🟡 static・アクセス修飾子を理解すると設計力が上がる
最後に
📚 学習には paizaラーニング を活用しました。