PHP のオブジェクト指向プログラミング: 大規模 PHP プロジェクトの開発方法 (4) 著者: Luis Argerich 翻訳者: limodou PHP の高度な OOP テクノロジ 基本的な OOP 概念を理解した後、より高度なテクノロジを紹介します: シリアル化 (シリアル化) PHP は永続オブジェクトをサポートしません。OOP では、永続オブジェクトは、オブジェクトをファイルまたはデータベースに保存し、後でロードして使用できる機能を備えたオブジェクトです。 。これはいわゆるシリアル化メカニズムです。 PHP にはオブジェクトに対して呼び出すことができるシリアル化メソッドがあり、シリアル化メソッドはオブジェクトの文字列表現を返すことができます。ただし、シリアル化ではオブジェクトのメンバー データのみが保存され、メソッドは保存されません。 PHP4 では、オブジェクトを文字列 $s にシリアル化してからオブジェクトを解放し、オブジェクトを $obj に逆シリアル化すると、オブジェクトのメソッドを引き続き使用できます。これを行うことはお勧めしません。(a) ドキュメントには、この動作が将来のバージョンでも機能するという保証がないからです。 (b) これにより、シリアル化されたバージョンをディスクに保存してスクリプトを終了するときに、誤解が生じる可能性があります。文字列表現にはメソッドがまったく含まれていないため、後でこのスクリプトを実行するときに、オブジェクトを逆シリアル化するときにオブジェクトのメソッドが存在することは期待できません。 つまり、PHP でのシリアル化は、オブジェクトのメンバー変数を保存するのに非常に役立ちます。 (関連する配列や配列をファイルにシリアル化することもできます)。 例: - - - - - - - - - - - - - - - - - - - - - - - - -------------------------------- ----------------- -------------------------------------------------- ------------- メンバー データは復元されましたが、メソッドは復元されませんでした (ドキュメントによると)。これにより、メンバー変数にアクセスするには $obj2->x を使用するような方法しかなくなります (他に方法はありません)。自宅では試さないでください。 この問題を解決する方法はいくつかありますが、この簡潔な記事の目的としてはあまりにもひどいため、ここでは省略します。 私は、PHP の次のバージョンでの完全にシリアル化された機能を喜んで歓迎します。 PHPBuilder.com より転載