目次
タイプキャスト(シンプルなオブジェクト)の使用
プライベートおよび保護されたプロパティの処理
ネストされたオブジェクトまたは複雑なデータの変換
ホームページ バックエンド開発 PHPチュートリアル PHPでオブジェクトを配列に変換する方法は?

PHPでオブジェクトを配列に変換する方法は?

Sep 14, 2025 am 03:14 AM
php 配列

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

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 サイトの他の関連記事を参照してください。

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

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Stock Market GPT

Stock Market GPT

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPでのクロスサイトリクエストフォーファリー(CSRF)攻撃を防ぐ方法は? PHPでのクロスサイトリクエストフォーファリー(CSRF)攻撃を防ぐ方法は? Sep 11, 2025 pm 12:45 PM

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

PHPの画像に透かしを追加する方法 PHPの画像に透かしを追加する方法 Sep 15, 2025 am 03:26 AM

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

PHPで区切り文字で文字列を分割する方法は? PHPで区切り文字で文字列を分割する方法は? Sep 11, 2025 pm 12:58 PM

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

PHPでオブジェクトを配列に変換する方法は? PHPでオブジェクトを配列に変換する方法は? Sep 14, 2025 am 03:14 AM

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

PHPでXSS(クロスサイトスクリプト)攻撃を防ぐ方法は? PHPでXSS(クロスサイトスクリプト)攻撃を防ぐ方法は? Sep 15, 2025 am 12:10 AM

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

PHPでCurlを使用してAPI呼び出しを作成する方法は? PHPでCurlを使用してAPI呼び出しを作成する方法は? Sep 15, 2025 am 05:16 AM

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

PHPで環境変数を操作する方法は? PHPで環境変数を操作する方法は? Sep 15, 2025 am 03:55 AM

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

PHPで投稿データを取得する方法は? PHPで投稿データを取得する方法は? Sep 16, 2025 am 01:47 AM

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

See all articles