PHPのクラスとコンストラクタのサンプルです。
| 確認環境 ・PHP 7.1.8 |
目次
クラスからオブジェクト(インスタンス)を生成するイメージ

クラスからオブジェクト(インスタンス)を生成するイメージです。
例えると、クラスは型枠でオブジェクトは実体です。
new演算子を使用してオブジェクト(インスタンス)を生成します。インスタンス化するといいます。
クラスのサンプル
| 2-17行目がクラスです。 |
| 4行目は、クラスのメンバ変数(プロパティ)です。 privateは、クラスの外部からアクセスできません。 |
| 7,13行目は、クラスのメソッド(関数)です。 publicは、クラスの外部からアクセスできます。 |
| 9,15行目の$this->は、自クラスの変数や関数を指定します。 9行目は、引数($name)の値を、自クラスのメンバ変数($this->name)にセットします。 15行目は、自クラスのメンバ変数($this->name)の値をメソッドの呼び出し元に返します。 |
| 19-21行目は、2行目のクラスのオブジェクト(インスタンス)を3つ生成しています。 構文は、変数 = new クラス名です。 |
| 24-26行目は、オブジェクトに値をセットしています。 28-30行目は、オブジェクトから値を取得して表示しています。 構文は、変数 -> メソッド名です。 |
<?php
class Color
{
private $name;
// nameを設定
public function setName($name)
{
$this->name = $name;
}
// nameを取得
public function getName()
{
return $this->name;
}
}
//オブジェクトを生成
$cr1 = new Color();
$cr2 = new Color();
$cr3 = new Color();
//オブジェクトのメソッドを使用
$cr1->setName("赤");
$cr2->setName("黄");
$cr3->setName("青");
print $cr1->getName(); //赤
print $cr2->getName(); //黄
print $cr3->getName(); //青
?>
コンストラクタのサンプル
コンストラクタは、オブジェクト(インスタンス)を生成する時に呼ばれて実行します。
コード
2-17行目はクラスです。
7行目がコンストラクタです。__constructという名前にします。constructの前にアンダースコアが2つ付いています。
19行目でオブジェクトが生成されると7行目のコンストラクタが呼ばれて引数の値(オレンジ)が4行目のメンバ変数にセットされます。
<?php
class Color
{
private $name;
// コンストラクタ
public function __construct($name)
{
$this->name = $name;
}
// nameを取得
public function getName()
{
return $this->name;
}
}
//オブジェクトを生成
$cr1 = new Color("オレンジ");
//オブジェクトのメソッドを使用
print $cr1->getName(); //オレンジ
?>
リンク
以下は、PHPマニュアルのクラスのリンクです。
http://php.net/manual/ja/language.oop5.basic.php
以下は、PHPマニュアルのコンストラクタのリンクです。
http://php.net/manual/ja/language.oop5.decon.php
関連の記事