オブジェクト型:object
Home >> PHP言語リファレンス >> PHPの型 >> オブジェクト型:object

オブジェクト型:object

オブジェクト型とは

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

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

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

<?php
class someclass
{
  var
$foo="メンバ変数"; // クラス内の変数の事
  
  // クラス内の関数の事をメソッドと言います。
  
function do_something() {
    echo
"メソッド内部から出力";
  }
}
$obj = new someclass();
echo
$obj->foo . "<br />\n";
$obj->do_something();
echo
"<br />\n";

echo
'$objの型:' . gettype($obj);
?>

出力結果

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

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

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

<?php
$obj
= (object) NULL;
var_dump($obj);
?>

出力結果

object(stdClass)(0) { }

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

<?php
$obj
= (object) array("a", "b", "c", "key"=>"value");
echo
"<pre>";
var_dump($obj);
echo
"</pre>";
?>

出力結果

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

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

<?php
$obj
= (object) "abc";
echo
"<pre>";
var_dump($obj);
echo
"</pre>";
?>

出力結果

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