PHP コンストラクタのサンプル

PHPのコンストラクタのサンプルです。

確認環境
・PHP 7.4.7

目次

サンプル コンストラクタ
  親クラスのコンストラクタを使用する
  デストラクタ

コンストラクタ

クラス{
    アクセス修飾子 function __construct(引数){
    }
}
  • コンストラクタは、メソッド名を__constructにします。
  • new演算子でクラスをインスタンス化する時に実行されます。
  • 初期値を設定するときなどに使用されます。
  • 以下は、PHPマニュアルのコンストラクタのリンクです。
    http://php.net/manual/ja/language.oop5.decon.php

以下は、コンストラクタとそのコンストラクタを利用するサンプルコードです。

コンストラクタのサンプルです。ファイル名はColor.phpです。

<?php
class Color
{
	private $name;
	public function __construct($name){
		$this->name = $name;
	}
	public function getName(){
		return $this->name;
	}
}
?>

5~7行目がコンストラクタです。
コンストラクタは、メソッド名を__constructにします。
クラスがnew演算子でインスタンス化されると、5行目が呼ばれ、6行目で引数の値が4行目のメンバ変数にセットされます。

上記のコンストラクタがあるクラスを呼び出すサンプルです。ファイル名はindex.phpです。

<?php
	require "Color.php";
	$cr1 = new Color("赤");
	print $cr1->getName(); //赤
?>

3行目は、new演算子でインスタンス化しています。その時に引数の値が渡されます。
4行目は、セットされた値を確認しています。

親クラスのコンストラクタを使用する

parent::__construct()

親クラスのコンストラクタを使用する時は、parent::__construct()を使います。

親のクラス

<?php
class Color1
{
	private $name;

	public function __construct($name){
		$this->name = $name;
	}
	public function getName(){
		return $this->name;
	}
}
?>

6行目は、コンストラクタです。

子のクラス

以下は、上記の親クラスに対する子のクラスです。上記クラスを継承しています。

<?php
require "Color1.php";

class Color2 extends Color1
{
	public function __construct($name){
		parent::__construct($name);
	}
}
?>

7行目のparent::__construct()は、親クラス(Color1クラス)の6行目のコンストラクタを実行します。

実行するコード

以下は、コンストラクタを実行するコードです。

<?php
	require "Color2.php";

	$cr1 = new Color2("赤");

	print $cr1->getName(); //赤

?>

4行目は、子クラスに引数を1つ渡しています。
6行目は、親クラスのコンストラクタが実行されて値がセットされていることを確認しています。

デストラクタ

__destruct()

デストラクタはオブジェクトの参照がなくなった後に実行されます。

<?php
class Color
{
	public function __construct(){
		echo "開始"; //開始と表示される
	}
	public function __destruct(){
		echo "終了"; //終了と表示される
	}
}
	$cr1 = new Color();
?>

4行目は、コンストラクタです。
7行目は、デストラクタです。
11行目は、2行目からのクラスをインスタンス化しています。開始と終了が表示されます。

関連の記事

PHPクラスの仕組みと使い方のサンプル
PHP クラスの継承の仕組みとサンプル

△上に戻る