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