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

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

Patricia Arquette
リリース: 2024-12-20 08:33:08
オリジナル
760 人が閲覧しました

How Can I Easily Convert PHP Objects to Associative Arrays?

PHP オブジェクトを連想配列に簡単に変換

オブジェクト指向構造を利用する API と統合する場合、これらのオブジェクトを変換する必要があります既存のコードとの互換性を保つために連想配列に変換します。 PHP でこの変換を実現する簡単で効率的な方法は次のとおりです。

解決策: 型キャスト

オブジェクトを配列に型キャストするだけで、そのキーを含む連想配列に変換されます。はオブジェクトのプロパティ名です。

$array = (array) $yourObject;
ログイン後にコピー

この型キャストはディープ キャストを実行しないため、オブジェクトにネストされたオブジェクトが含まれている場合、それらは配列に変換されません。ただし、これはパブリック プロパティを持つオブジェクトや単純な StdClass オブジェクトに適しています。

複雑なオブジェクトとプロパティのアクセシビリティ

より複雑なオブジェクトの場合、型キャストでは望ましい結果が得られない可能性があります。 。 PHP には、型キャストされた配列内の非パブリック プロパティにアクセスするための特定のルールがあります。

  • プライベート プロパティ: プロパティ名の前にクラス名と null バイトを追加します (classname propertyName)
  • 保護されたプロパティ:プロパティ名の前にアスタリスク (*) と null バイトを追加します。 ( * propertyName)

例:

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

var_dump((array) new Foo());
ログイン後にコピー

出力:

array(3) {
  ["Foofoo"] => int(1)
  ["*bar"] => int(2)
  ["baz"] => StdClass Object ( ... )
}
ログイン後にコピー

ディープ キャストと追加リソース

オブジェクト グラフのディープ キャストが必要な場合または、この変換手法についてさらに詳しく知りたい場合は、次のリソースを参照することを検討してください:

  • PHP マニュアル: 配列
  • ブログ投稿: 高速な PHP オブジェクトから配列への変換
  • PHP StdClass ドキュメント

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート