ホームページ >バックエンド開発 >PHPチュートリアル >PHP オブジェクトを連想配列に簡単に変換するにはどうすればよいですか?

PHP オブジェクトを連想配列に簡単に変換するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-26 10:54:10711ブラウズ

How to Easily Convert a PHP Object into an Associative Array?

PHP オブジェクトを連想配列に変換する方法

コードで配列を使用する場合、オブジェクト内のデータを操作する API の統合には課題が生じる可能性があります。幸いなことに、PHP にはオブジェクトを連想配列に変換する簡単な方法が用意されています。

オブジェクトを型キャストするだけ

オブジェクトを配列に変換するには、単に型キャストするだけです:

$array = (array) $yourObject;

結果の配列を理解する

PHP で説明されているとおりドキュメント:

「オブジェクトが配列に変換されると、結果はオブジェクトのプロパティを要素とする配列になります。」

ただし、特定のプロパティは動作が異なる場合があります:

  • 整数プロパティ:アクセスできません
  • プライベート変数: クラス名が先頭に追加されます
  • 保護された変数: が先頭に追加されます'*'

単純なオブジェクト:

$object = new StdClass;
$object->foo = 1;
$object->bar = 2;

var_dump((array) $object);

出力:

array(2) {
  'foo' => int(1)
  'bar' => int(2)
}

複雑オブジェクト:

class Foo {
    private $foo;
    protected $bar;
    public $baz;

    public function __construct() {
        $this->foo = 1;
        $this->bar = 2;
        $this->baz = new StdClass;
    }
}

var_dump((array) new Foo);

出力:

array(3) {
  'Foofoo' => int(1)
  '*bar' => int(2)
  'baz' => class stdClass#2 (0) {}
}

制限事項

直接の型キャストでは、オブジェクト グラフのディープ キャストは実行されません。非パブリック属性にアクセスするには、PHP マニュアルに記載されている null バイトを適用する必要があります。このメソッドは、単純な StdClass オブジェクトまたはパブリック プロパティのみを持つオブジェクトをキャストする場合に最適です。

さらに詳細な情報については、以下を読むことを検討してください:

  • 配列に関する PHP ドキュメント: https: //www.php.net/manual/en/function.array.php
  • StdClass オブジェクトのドキュメント: https://www.php.net/manual/en/class.stdclass.php
  • 「PHP オブジェクトから配列への高速変換」: https://stitcher.io/blog/fast-php-object-配列への変換

以上がPHP オブジェクトを連想配列に簡単に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。