『PHPオブジェクト指向基礎まとめ(1)』
https://qiita.com/imayasu/items/03bf73d1d844bef6a194
の続き
$thisについて
メソッドの中でインスタンスのプロパティやメソッドにアクセスしたい時には$thisという特殊な変数を使う。
class Animal {
public $name;
public function hello() {
echo "私の名前は{$this->name}です"; //hello()の中でnameプロパティにアクセスしたい
}
}
$cat = new Animal();
$cat->name = 'MIKE';
$cat->hello();
コンストラクタ
__construct()という記述をするとインスタンスを生成した時に自動でメソッドが呼ばれる。
コンストラクタには引数をとることができ、コンストラクタメソッドの中で$thisを用いてプロパティに値をセットすることができる。
※コンストラクタの記述はアンダーバー2つから始まることに注意
class Monster {
public $name;
public function __construct($name) { // コンストラクタの引数に$nameを入れる
$this -> name = $name; // nameプロパティに引数の$nameを代入
}
public function hello() {
echo "{$this->name}が現れた!!";
}
}
$slime = new Monster('スライム'); //Monsterの引数にスライムを入れる
$metal = new Monster('はぐれメタル');
$slime->hello();
echo '<br>';
$metal->hello();
/*結果
スライムが現れた!!
はぐれメタルが現れた!!*/
ちょっと複雑になってきましたが、使い方を覚えればスッキリしたコードが書けるようになりそうです。