PHP コンストラクタとデストラクタの使い方

コンストラクタ

コンストラクタとは、クラスにおいてオブジェクトが生成された際に実行されるメソッドのことです。コンストラクタの良くある使い方は、オブジェクト生成時のインスタンス変数の初期化などです。

<?php
class Product{
  private $name = null;
  private $size = null;
  private $price = null;

  function __construct($name, $size, $price){
    $this->name = $name;
    $this->size = $size;
    $this->price = $price;
  }
}

$product= new Product('シャツ', 'M', '1200円');


デストラクタ

デストラクタは、オブジェクトが参照されなくなった時に確実に実行されるメソッドです。

<?php
class Product{
  private $name = null;
  private $size = null;
  private $price = null;

  function __construct($name, $size, $price){
    $this->name = 'ズボン';
    $this->size = $size;
    $this->price = $price;
  }
  function getName(){
    return $this->name;
  }
  function getSize(){
    return $this->size;
  }
  function getPrice(){
    return $this->price;
  }
  function __destruct(){
    echo 'オブジェクトを破棄します'.PHP_EOL;
  }
}

$fruit = newProduct('シャツ', 'M', '1200円');
echo $fruit->getName().PHP_EOL;
echo '最後の行です'.PHP_EOL;

出力結果は以下のようになります。

ズボン
最後の行です
オブジェクトを破棄します

スクリプト終了と同時にオブジェクトが破棄されるため、デストラクタが呼び出され「オブジェクトを破棄します」と出力されます。