ホームページ  >  記事  >  バックエンド開発  >  PHPオブジェクトのシリアライズとデシリアライズの詳細説明、serialization_PHPチュートリアルの詳細説明

PHPオブジェクトのシリアライズとデシリアライズの詳細説明、serialization_PHPチュートリアルの詳細説明

WBOY
WBOYオリジナル
2016-07-12 09:00:05787ブラウズ

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 オブジェクトのシリアル化


リーリー

ここでは、PHP オブジェクトのシリアル化と逆シリアル化に関する関連知識を紹介します。お役に立てば幸いです。

興味があるかもしれない記事:

    PHP のシリアル化された変数とシリアル化されたオブジェクト
  • php オブジェクト指向ガイド (16) オブジェクトのシリアル化

http://www.bkjia.com/PHPjc/1095279.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1095279.html技術記事 PHP オブジェクトのシリアル化と逆シリアル化の詳細な説明 シリアル化はいつ使用する必要がありますか? ネットワーク内でオブジェクトを送信したり、データベースにファイルを保存したりする場合、今日は 4 つのことについて説明します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。