オブジェクト型:object
そふぃのPHP入門 >> PHP言語リファレンス >> PHPの型 >> オブジェクト型:object

オブジェクト型:object

オブジェクト型とは

オブジェクト型(object)はPHPでのオブジェクトです。

オブジェクトというのは「オブジェクト指向」という概念に基づいたプログラミング手法ですが、オブジェクト指向が何か、やどういったプログラミング手法なのか、などはここでは詳しくやりません。

PHPで、オブジェクトを作成するには以下のサンプルのようにします。

  1. <?php
  2. class someclass
  3. {
  4.   var $foo = "メンバ変数"; // クラス内の変数の事
  5.   
  6.   // クラス内の関数の事をメソッドと言います。
  7.   function do_something() {
  8.     echo "メソッド内部から出力";
  9.   }
  10. }
  11. $obj = new someclass();
  12. echo $obj->foo . "<br />\n";
  13. $obj->do_something();
  14. echo "<br />\n";
  15.  
  16. echo '$objの型:' . gettype($obj);
  17. ?>

出力結果

メンバ変数
メソッド内部から出力
$objの型:object

オブジェクト型以外の値がオブジェクトに変換された場合、stdClassというクラスのインスタンスが生成されます。stdClassというのはPHPの組み込みクラスだと思って下さい。

値がNULLの場合は、新しいインスタンスは空となります。

  1. <?php
  2. $obj = (object) NULL;
  3. var_dump($obj);
  4. ?>

出力結果

object(stdClass)#3 (0) { }

配列が変換される場合は配列のキーがプロパティ名、値がプロパティの値となります。

  1. <?php
  2. $obj = (object) array("a", "b", "c", "key"=>"value");
  3. echo "<pre>";
  4. var_dump($obj);
  5. echo "</pre>";
  6. ?>

出力結果

object(stdClass)#4 (4) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  ["key"]=>
  string(5) "value"
}

他の値の場合は、scalarという名前のメンバ変数に値が格納されます。

  1. <?php
  2. $obj = (object) "abc";
  3. echo "<pre>";
  4. var_dump($obj);
  5. echo "</pre>";
  6. ?>

出力結果

object(stdClass)#3 (1) {
  ["scalar"]=>
  string(3) "abc"
}