PHPのコンストラクタのサンプルです。
確認環境 ・PHP 7 |
目次
サンプル | コンストラクタ |
親クラスのコンストラクタを実行する | |
デストラクタ |
コンストラクタ
クラス{ アクセス修飾子 function __construct(引数){ } } |
- コンストラクタは、メソッド名を__constructにします。
- new演算子でクラスをインスタンス化する時に実行されます。
- 初期値を設定するときなどに使用されます。
- 以下は、PHPマニュアルのコンストラクタのリンクです。
http://php.net/manual/ja/language.oop5.decon.php
コンストラクタのサンプルです。
<?php
class Color
{
public $colorName;
public function __construct($name)
{
$this->colorName = $name;
}
}
$c1 = new Color("赤");
print $c1->colorName; //赤
5~8行目は、コンストラクタです。メソッド名を__constructにします。
10行目は、new演算子でColorクラスをインスタンス化しています。その時に引数の値がコンストラクタに渡されます。
親クラスのコンストラクタを実行する
parent::__construct() |
親クラスのコンストラクタを使用する時は、parent::__construct()を使います。
<?php
class Color1
{
public $colorName;
public function __construct($name)
{
$this->colorName = $name;
}
}
class Color2 extends Color1
{
public function __construct($name)
{
parent::__construct($name);
}
}
$c2 = new Color2("赤");
print $c2->colorName; //赤
14行目のparent::__constructは、親クラスの5行目のコンストラクタを実行します。
デストラクタ
__destruct() |
デストラクタはオブジェクトの参照がなくなった後に実行されます。
<?php
class Color
{
public function __construct()
{
echo "開始"; //開始と表示される
}
public function __destruct()
{
echo "終了"; //終了と表示される
}
}
$cr1 = new Color();
4行目は、コンストラクタです。
8行目は、デストラクタです。
13行目は、2行目からのクラスをインスタンス化しています。開始と終了が表示されます。
関連の記事