« 配列
列挙型 / Enum »

オブジェクト

オブジェクトの初期化

オブジェクトを初期化するためには、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' を出力します
?>
関連キーワード:
インスタンス   初期化   変数   キー   プロパティ   キャスト   dump   outputs   scalar   ciao   列挙型   Enum   命令   詳細   セクション   修正   stdClass   ビルトイン   内部   数値   isset   非推奨   上記   メンバ   格納
関連する関数・ページ:
language.types.enumerations   function.is-scalar   function.is-string   language.types.array   function.isset   language.types.null