PHPのコンストラクタとは?オブジェクト生成時の初期化処理を解説
PHPのオブジェクト指向プログラミングにおいて、クラスからオブジェクトを生成したときに自動で実行される特別なメソッドが コンストラクタ(constructor) です。
主に、プロパティの初期化などに使われます。
コンストラクタの基本構文
class クラス名 {
public function __construct(引数...) {
// 初期化処理
}
}
例:
class User {
public $name;
public function __construct($name) {
$this->name = $name;
}
public function greet() {
echo "こんにちは、" . $this->name . "さん";
}
}
オブジェクト生成時に自動で呼ばれる
$user = new User("太郎");
$user->greet(); // こんにちは、太郎さん
new
を使ってオブジェクトを生成する際、__construct()
が自動的に実行され、引数も同時に渡されます。
コンストラクタで複数のプロパティを初期化
class Book {
public $title;
public $author;
public function __construct($title, $author) {
$this->title = $title;
$this->author = $author;
}
public function showInfo() {
echo $this->title . "(著者:" . $this->author . ")";
}
}
$book = new Book("走れメロス", "太宰治");
$book->showInfo(); // 走れメロス(著者:太宰治)
デフォルト値を使う
引数にデフォルト値を指定すれば、省略時にも対応できます。
public function __construct($name = "ゲスト") {
$this->name = $name;
}
親クラスのコンストラクタを呼び出す(継承)
クラスを継承している場合、親のコンストラクタは parent::__construct()
で呼び出します。
class Animal {
public function __construct() {
echo "動物が生まれた!";
}
}
class Dog extends Animal {
public function __construct() {
parent::__construct();
echo " 犬です!";
}
}
$dog = new Dog(); // 動物が生まれた! 犬です!
まとめ
__construct()
はオブジェクト生成時に自動で呼ばれる
- 主にプロパティの初期化に使用する
- 引数を受け取って初期値を設定できる
- 親クラスのコンストラクタは
parent::__construct()
で呼び出す
コンストラクタは、オブジェクトの初期状態を整えるための大切な仕組みです。
オブジェクト指向を使った開発では欠かせない要素なので、しっかりと理解しておきましょう。