ホームページ  >  記事  >  バックエンド開発  >  セクション 13 -- オブジェクトのシリアル化_PHP チュートリアル

セクション 13 -- オブジェクトのシリアル化_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:01:13710ブラウズ

/*
+---------------------------------------------- -- ----------------------------------+
| = この記事は Haohappy<> ; = 章のクラスとオブジェクトのメモ
| = 不要なトラブルを避けるため、転載はご遠慮ください
| PHP 愛好家は一緒に進歩しましょう
| = PHP5 Research Center: http://blog.csdn.net/haohappy2004
+---------------------- -------------------------------------------------- -- ---+
*/
セクション 13 -- オブジェクトのシリアル化
シリアル化では、オブジェクトを含む変数を連続バイト データに変換できます。シリアル化された変数をファイルまたはネットワーク上に保存し、それを逆シリアル化してファイルに戻すことができます。クラスのオブジェクトを逆シリアル化する前に定義したクラスの場合、PHP はそのオブジェクトのプロパティとメソッドを正常に保存できるため、シリアル化の直後にオブジェクトを実行する必要がある場合があります。 __sleep メソッドと __wakeup メソッドの場合
オブジェクトがシリアル化されると、PHP はオブジェクトを逆シリアル化する前に __sleep メソッドを呼び出します。どちらのメソッドもパラメーターを受け取る必要はありません。シリアル化する必要がある属性を含む配列。__sleep メソッドがない場合、PHP はすべての属性を保存します。
例 6.16 は、__sleep と __wakeup を使用してオブジェクトをシリアル化する方法を示しています。 Id 属性は、オブジェクトに保持されることを意図していない一時的な属性です。__sleep メソッドは、User オブジェクトを逆シリアル化するときに、ID が新しい値を確立します。この例は、自立するように設計されています。実際の開発では、リソース (画像やデータ ストリームなど) を含むオブジェクトにこれらのメソッドが必要になる場合があります。
コードは次のとおりです:

class User

{ public $name; public $id; function __construct() {
// ユーザーに別の ID を与える使用する使用の使用「s」の使用を使用して、「s」を使用して「s」を使用して 's - - ‐ ‐ _ _ serialize this-&gt; id do not serialize id(array( "name"); = new User;
$u->name = "Leon";
// シリアル化 id 属性はシリアル化されていないことに注意してください。id の値は破棄されます
$s = Serialize($u); // シリアル化を解除します逆シリアル化 ID が再割り当てされます
$u2 = unserialize($s);
//$u と $u2 は異なる ID を持ちます
print_r($u)
print_r( $u2)?> ;

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/316930.html技術記事 /* +---------------------------------------------- --- ---------------------------------+ |=この記事は、CorePHP プログラミングの ClassesandObjects の章からの Haohappy のメモです。 |=|= メイン + 個人的な翻訳...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。