PHPでオブジェクトを配列に変換する方法は?
(配列)を使用して、単純なオブジェクトを配列に変換します。プライベートまたは保護されたプロパティが含まれている場合、キー名に特殊文字があります。ネストされたオブジェクトの場合、再帰関数を使用して変換を横断して、すべての階層オブジェクトが連想配列になるようにする必要があります。
PHPのオブジェクトを配列に変換するには、オブジェクトの複雑さに応じて、単純な型キャスト方法または再帰アプローチを使用できます。
タイプキャスト(シンプルなオブジェクト)の使用
オブジェクトにパブリックプロパティとネストされたオブジェクトのみが含まれていない場合、 (配列)を使用した型鋳造は直接機能します。
$ object = new stdclass(); $ object-> name = "john"; $ object-> age = 30; $ array =(array)$ object; print_r($ array);
これは出力です:
配列 ( [名前] =>ジョン [年齢] => 30 ))
プライベートおよび保護されたプロパティの処理
オブジェクトにプライベートまたは保護されたプロパティがある場合、配列へのキャストには、可視性を示すためにキーに追加の文字が含まれます。
- クラスMyClassの私有地MyPropは「\ 0myclass \ 0myprop」になります
- 保護されたプロパティは「\ 0*\ 0propertyname」になります
これによりアクセスが複雑になる可能性があるため、クリーンな配列キーが必要な場合は、ゲッターまたはリフレクションの使用を検討してください。
ネストされたオブジェクトまたは複雑なデータの変換
他のオブジェクトまたは配列を含むオブジェクトの場合、再帰関数は完全な変換を保証します。
関数objectToArray($ data){ if(is_object($ data)){ $ data = get_object_vars($ data); } if(is_array($ data)){ return array_map( 'objectToArray'、$ data); } $ dataを返します。 } //使用の例 クラスアドレス{ public $ city = "New York"; public $ zip = "10001"; } クラスの人{ public $ name = "Alice"; public $ address; パブリック関数__construct(){ $ this-> address = new Address(); } } $ person = new Person(); $ array = objectToArray($ person); print_r($ array);
このアプローチにより、すべてのレベルのネストされたオブジェクトが関連する配列に変換されます。
基本的に、単純なケースには(配列)を使用し、複雑なオブジェクトやネストされたオブジェクトを扱うときは再帰関数を使用します。
以上がPHPでオブジェクトを配列に変換する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Stock Market GPT
AIを活用した投資調査により賢明な意思決定を実現

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

ThemoStecteftectivetewwaytopreventcsrfattacksinphpisusanti-csrftokens.generateasecuretokenviabin2hex(random_bytes(32))、storeitin $ _ session、andincludeitahiddiddidenfieldinfieldinforms.uponsforms.uponsubmision、dectokenmateSesessionvento;

PHPのGDライブラリを使用して、画像に透かしを追加します。最初に元の画像と透かし(テキストまたは画像)をロードし、次にimageCopy()またはImagetTftext()を使用してマージし、最後に出力を保存します。 JPEG、PNG、その他の形式をサポートし、透明性とフォントパスの処理に注意し、GD拡張機能が有効になっていることを確認してください。

exploit()関数を使用して文字列をセパレーターで分割し、その構文はexplore( "、"、 "、" apple、banana ")などのexplore(delimiter、string、lime number)です。 LIMITパラメーターは、Explore( " - "、 "One-tw-three"、2)などの返された要素の数を制御して['one'、 '2-three']を取得できます。複数のセパレータが必要な場合、preg_split()などのpreg_splitなどの正規表現でpreg_split()が使用されます

(配列)を使用して、単純なオブジェクトを配列に変換します。プライベートまたは保護されたプロパティが含まれている場合、キー名に特殊文字があります。ネストされたオブジェクトの場合、再帰関数を使用して変換を横断して、すべての階層オブジェクトが連想配列になるようにする必要があります。

preventXsssssbyescapingOutputwithhtmlspecialChars()orjson_encode()、validatinginputusingfilter_var()、applyingcspheaders、andusingsingsecureframeworkslikelaravel。

intializecurlwithcurl_init()、setoptionslikeurl、method、andheaders、senddatausingpostorcustomtometods、handleresponseviacurl_exec()、checkerrorswithcurl_error()、retievestatususingcurl_getinfo()、decodejsonrespurlletosons(

usegetEnv()toreadenvironmentvariablesandvlucas/phpdotenvtoload.envfilesindevelopment; storeSensitalikeapikeysoutsidecode、nevercommit.envtoversion control、およびuseatualenvironmentvariablesininininporursecurity。

$ _POST HyperGlobal Arrayを使用してPOSTデータを取得し、フォーム名属性を使用して値を読み取り、配列入力を処理するときにForeachループを使用して、XSSを防ぐためにデータを検証およびフィルタリングする必要があります。
