オブジェクトを初期化するためには、new 命令によりオブジェクトのインスタンスを変数に作成します。
<?php
class foo
{
function do_foo()
{
echo "foo を実行します。";
}
}
$bar = new foo;
$bar->do_foo();
?>
詳細な事項については、 クラスおよびオブジェクト のセクションを参照ください。
オブジェクトがオブジェクトに変換される場合はなにも修正されません。 オブジェクト以外の型の値がオブジェクトに変換される時には、stdClass というビルトインクラス(予めPHPの内部で定義されているクラス)のインスタンスが新しく生成されます。 その際、値が null の場合は新しいインスタンスは空となります。 また、配列がオブジェクトに変換される場合、配列のキーと値がそれぞれオブジェクトのプロパティ名とその値となります。 ただし、数値のキーの場合は例外で、プロパティ名によるアクセスはできなくなります。
<?php
$obj = (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // 出力は 'bool(false)'
var_dump(key($obj)); // 出力は 'int(1)'
?>
上記以外の値の場合には、scalar という名前のメンバ変数が値を格納します。
<?php
$obj = (object) 'ciao';
echo $obj->scalar; // 'ciao' を出力します
?>