PHP - オブジェクト

オブジェクト

オブジェクトの詳細については「クラスおよびオブジェクト」のセクションを参照してください。ここではオブジェクトの初期化、およびオブジェクトへの変換について説明します。

オブジェクトを初期化するには、new 命令によりオブジェクトのインスタンスを変数に作成します。

<?php
  class foo{
      function do_foo(){
          echo "foo";
      }
  }

  $bar = new foo; // オブジェクトの初期化
  $bar->do_foo();
?>
オブジェクトの初期化

オブジェクト以外の型の値がオブジェクトに変換される場合、stdClass というビルトインクラス(PHP の内部で定義されているクラス)のインスタンスが新しく生成されます。その際、値が null の場合は新しいインスタンスは空となります。また、配列がオブジェクトに変換される場合、配列のキーと値がそれぞれオブジェクトのプロパティ名とその値となります。PHP 7.2.0 より前のバージョンでは、数値のキーの場合プロパティ名によるアクセスはできなかった点に注意して下さい。

<?php
  $obj = (object) array('1' => 'foo');
  var_dump(isset($obj->{'1'})); // bool(true)
  var_dump(key($obj)); // string(1) "1"
?>
オブジェクトへの変換 (PHP 7.2.0 以降)

上記以外の値の場合は、scalar という名前のメンバ変数が値を格納します。

<?php
  $obj = (object) 'ciao';
  echo $obj->scalar;  // 'ciao'
?>
オブジェクトへの変換

関連記事