ホームページ >バックエンド開発 >PHPチュートリアル >PHPオブジェクトのシリアライズとデシリアライズの詳細説明、serialization_PHPチュートリアルの詳細説明
シリアル化をいつ使用するか?
ネットワーク上でオブジェクトを送信し、ファイルをデータベースに保存する場合
今日は 4 つの機能について説明します
すべて連載中
1.serialize(object name) 指定されたクラスオブジェクトをシリアル化 $str=serialize($per) //オブジェクトごとにシリアル化し、結果を $str
に返す
2.unserialize (シリアル化後の戻り値) 戻り結果はオブジェクト $per=unserialize($str);
一部連載中
3.__sleep() はオブジェクトのいくつかの属性をシリアル化します。
4.__wakeup() は逆シリアル化中にオブジェクトの内容を初期化 (実際には変更) します
最初の 2 つの使用法についてはすでに紹介したと思いますが、次に __sleep() と __wakeup() の使用法を簡単に紹介します。
1. オブジェクト内の一部の属性のみをシリアル化したい場合は、__sleep() 関数を使用できますクラス定義に
を追加 リーリー
2. クラスをシリアル化するときに、オブジェクトごとの name 属性値が「Jiang Tong」で、逆シリアル化中にそれを「Zhang San」に変更したい場合はどうすればよいですかリーリー
オブジェクトPHPシリアル化の詳細な紹介
PHP のシリアル化により、オブジェクトを含む変数が連続バイト データに変換され、シリアル化された変数をファイルに保存したり、ネットワーク経由で送信したりして、元のデータに逆シリアル化できることは誰もが知っています。この記事では、PHP シリアル化について詳しく説明します。 PHP は、オブジェクトを逆シリアル化する前に、定義したクラスのプロパティとメソッドを正常に保存できます。場合によっては、オブジェクトを逆シリアル化した後すぐに実行する必要があります。このような目的のために、PHP は __sleep メソッドと __wakeup メソッドを自動的に検索します。オブジェクトが PHP によってシリアル化されると、PHP は __sleep メソッドを呼び出します (存在する場合)。オブジェクトを逆シリアル化した後、PHP は __wakeup メソッドを呼び出します。どちらのメソッドもパラメータを受け入れません。シリアル化すると、PHP は他のプロパティの値を破棄します。 __sleep メソッドを使用しない場合、PHP はすべての属性を保存します。例 1 は、__sleep メソッドと __wakeup メソッドを使用してオブジェクトをシリアル化する方法を示しています。Id 属性は、オブジェクトに保持されることを目的としていない一時的な属性です。__sleep メソッドは、シリアル化されたオブジェクトに id 属性が含まれていないことを保証します。逆にすると、User オブジェクトをシリアル化するために、__wakeup メソッドは id 属性の新しい値を確立します。実際の開発では、リソース (画像やデータ ストリームなど) を含むオブジェクトが必要になる場合があります。これらの方法。
リスト1 オブジェクトのシリアル化
リーリー
興味があるかもしれない記事: