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

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

確認環境
・PHP 7.1.8

目次

コンストラクタ

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

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

コード

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

<?php
class Color
{
	private $name;

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

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

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

コンストラクタの動きを確認する

上記のコンストラクタがあるクラスを呼び出すサンプルです。

<?php
	require "Color.php";

	$cr1 = new Color("赤");

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

?>

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

 

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

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

コード

parent::__construct()を使用するサンプルです。

1.以下は、親のクラスになります。

<?php
class Color1
{
	private $name;

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

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

 

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

<?php
require "Color1.php";

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

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

 

3.コンストラクタを実行するコードです。

<?php
	require "Color2.php";

	$cr1 = new Color2("赤");

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

?>

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

関連の記事

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

△上に戻る