PHPにオブジェクト配列を保存する方法
PHP 言語では、配列は複数の値を格納し、添え字を通じて各値にアクセスできる非常に一般的なデータ型です。さらに、PHP はオブジェクト配列もサポートしています。つまり、配列内の各要素はオブジェクトです。実際の開発では、オブジェクト配列をアプリケーションに保存し、その後の操作を実行する必要があることがよくあります。この記事では、PHP がオブジェクトの配列を保存する方法を紹介します。
1. オブジェクト配列を文字列にシリアル化して保存する
オブジェクト配列は、文字列にシリアル化し、必要に応じてオブジェクト配列に逆シリアル化することで保存できます。 PHP は、シリアル化関数と逆シリアル化関数 serialize()
および unserialize()
を提供します。
サンプル コードは次のとおりです。
// 定义一个对象 class Person { public $name; public $age; } // 初始化对象数组 $persons = [ new Person('Tom', 18), new Person('Jerry', 20), ]; // 序列化对象数组 $serialized = serialize($persons); // 存储到文件中 file_put_contents('persons.txt', $serialized); // 从文件中读取并反序列化 $serialized = file_get_contents('persons.txt'); $persons = unserialize($serialized);
オブジェクト配列を文字列にシリアル化すると、データの保存と送信が簡単になりますが、いくつかの問題もあります。まず第一に、シリアル化された文字列は直接表示および変更できないため、デバッグと保守がより複雑になります。第 2 に、シリアル化された文字列は単純なオブジェクト配列の格納にのみ適しており、オブジェクト配列にサブオブジェクトやリソースが含まれる場合、シリアル化された文字列は非常に大きくなる可能性があります。
2. オブジェクト配列を JSON 形式に変換して保存する
オブジェクト配列を文字列にシリアル化する場合と比較して、オブジェクト配列を JSON 形式に変換すると、データの表示と変更が容易になります。 JSON 形式は、PHP を含む複数のプログラミング言語をサポートする軽量のデータ交換形式です。 PHP は、オブジェクト配列を JSON 形式の文字列に変換し、JSON 形式の文字列からオブジェクト配列を解析できる json_encode()
および json_decode()
関数を提供します。
サンプル コードは次のとおりです。
// 定义一个对象 class Person { public $name; public $age; } // 初始化对象数组 $persons = [ new Person('Tom', 18), new Person('Jerry', 20), ]; // 将对象数组转换为JSON格式字符串 $json = json_encode($persons); // 存储到文件中 file_put_contents('persons.json', $json); // 从文件中读取并解析为对象数组 $json = file_get_contents('persons.json'); $persons = json_decode($json);
オブジェクト配列を JSON 形式に変換すると、データの表示と変更が容易になり、複雑なオブジェクト配列を保存できます。ただし、JSON 形式は文字列形式よりも多くのスペースを占有するため、大規模なオブジェクト配列を保存するときに特定のパフォーマンスの問題が発生する可能性があります。
3. オブジェクト配列をシリアル化されたバイナリ ストリームに変換し、PHP の
#msgpack 拡張機能を使用すると、オブジェクト配列をバイナリ ストリームにシリアル化するメソッドが提供され、このメソッドによりストレージ容量を削減できます。オブジェクト配列を保存するときに使用でき、データ送信と解析の効率も向上します。ここでは、
msgpack を使用してストレージ オブジェクト配列を拡張する方法を紹介します。
msgpack 拡張機能がインストールされていることを確認する必要があります。次に、
msgpack_pack() 関数と
msgpack_unpack() 関数を使用して、それぞれオブジェクト配列をバイナリ ストリームにシリアル化し、バイナリ ストリームからオブジェクト配列を解析できます。
// 定义一个对象 class Person { public $name; public $age; } // 初始化对象数组 $persons = [ new Person('Tom', 18), new Person('Jerry', 20), ]; // 将对象数组序列化为二进制流 $packed = msgpack_pack($persons); // 存储到文件中 file_put_contents('persons.bin', $packed); // 从文件中读取并解析为对象数组 $packed = file_get_contents('persons.bin'); $persons = msgpack_unpack($packed);
以上がPHPにオブジェクト配列を保存する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











この記事では、効率的なPHPアレイ重複排除について説明します。 Array_unique()などの組み込み関数をカスタムハッシュマップアプローチと比較し、配列のサイズとデータ型に基づいてパフォーマンスのトレードオフを強調します。 最適な方法は、プロビリに依存します

この記事では、Keyの一意性を使用してPHPアレイ重複排除について説明します。 直接的な重複除去方法ではありませんが、キーユニークネスを活用することで、キーに値をマッピングして重複を上書きすることにより、一意の値を持つ新しい配列を作成できます。 このAP

この記事では、PHPアレイの重複排除を分析し、素朴なアプローチ(O(n²))のパフォーマンスボトルネックを強調しています。 カスタム関数、splobjectStorage、およびハッシュセットの実装を使用して、array_unique()を使用して効率的な代替案を調査し、達成します

この記事では、RabbitMQとRedisを使用してPHPでメッセージキューを実装する詳細を示します。 それは、それらのアーキテクチャ(AMQP対インメモリ)、機能、および信頼性メカニズム(確認、トランザクション、永続性)を比較します。デザインのベストプラクティス、エラー

この記事では、PSRの推奨事項(PSR-1、PSR-2、PSR-4、PSR-12)に焦点を当てた現在のPHPコーディング基準とベストプラクティスを検証します。 一貫したスタイリング、意味のある命名、EFFを通じてコードの読みやすさと保守性を改善することを強調しています

この記事では、大規模なデータセットのPHPアレイ重力化の最適化について説明します。 Array_unique()、array_flip()、splobjectStorage、事前ソートなどの手法を調べ、効率を比較します。 大規模なデータセットの場合、チャンク、データブを示唆しています

この記事では、PHP拡張機能のインストールとトラブルシューティングの詳細で、PECLに焦点を当てています。 インストール手順(検索、ダウンロード/コンパイル、サーバーの再起動、再起動)、トラブルシューティングテクニック(ログのチェック、インストールの確認、

この記事では、PHPの反射APIについて説明し、クラス、方法、およびプロパティのランタイム検査と操作を可能にします。 一般的なユースケース(ドキュメンテーション生成、ORM、依存関係注入)とパフォーマンスオーバーヘアに対する注意の詳細
