ホームページ >バックエンド開発 >PHPチュートリアル >セクション 13 -- オブジェクトのシリアル化 --ClassesandObjectsinPHP513_PHP チュートリアル
+------------------------------------------------ ----------------------------------+ | = この記事は Haohappy によって読まれています> =章のクラスとオブジェクト | = 主に翻訳 + 個人的な経験 | = 不要なトラブルを避けるため、転載はご遠慮ください。 = 批判や修正は歓迎です。 ---------- -------------------------------------- ------- -------+ */ セクション 13 - オブジェクトのシリアル化 シリアル化では、オブジェクトを含む変数を連続バイト データに変換できます。逆シリアル化された変数は、ファイルに保存されるか、ネットワーク経由で送信されます。その後、クラス オブジェクトを逆シリアル化する前に、PHP がそのオブジェクトとメソッドのプロパティを正常に保存できることがあります。このような目的のために、PHP はオブジェクトをシリアル化するときに、__sleep メソッドと __wakeup メソッドを自動的に探します (存在する場合)。どちらのメソッドもパラメータを受け入れません。__sleep メソッドを使用しない場合、PHP はすべての属性を破棄します。 __sleep メソッドと __wakeup メソッドを使用してオブジェクトをシリアル化するには、Id 属性はオブジェクトに保持されることを目的としていない一時的な属性です。__sleep メソッドは、シリアル化されたオブジェクトに id 属性が含まれていないことを保証します。 __wakeup メソッドは、id 属性の新しい値を確立します。実際の開発では、これらのオブジェクト (イメージまたはデータ ストリーム) に id 属性が含まれていることがわかります。リスト 6.16 オブジェクトのシリアル化 id = uniqid(); } function __sleep() { //this->id id をシリアル化しない return(array("name") ) } function __wakeup() { //ユーザーに一意の ID を与えます $this->id = uniqid(); } } //オブジェクトを作成します $u = new User; //id 属性に注意してください。シリアル化中に ID の値は破棄されます。 $u2 = unserialize($s); //シリアル化解除されます。 $u と $u2 は異なる ID を持ちます print_r($u) ?> ;