オブジェクト型: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
メソッド内部から出力
$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"
}


