ホームページ >php教程 >php手册 >セクション 13 -- オブジェクトのシリアル化

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

WBOY
WBOYオリジナル
2016-06-13 12:37:00840ブラウズ

/*
------------------------------------------- ----------------------------------
| この記事は Haohappy<
| = 章のクラスとオブジェクトのメモ
| = 不要なトラブルを避けるため、転載しないでください。批判や修正は大歓迎です。私たちはすべての PHP 愛好家とともに進歩していきたいと考えています。
= PHP5 Research Center: http://blog.csdn.net/haohappy2004
--------- ----- -------------------------------------- ----- ---------------
*/
セクション 13 - オブジェクトのシリアル化
シリアル化では、オブジェクトを含む変数を連続バイト データに変換できます。シリアル化された変数をファイルに保存したり、ネットワーク経由で送信したりして、元のデータに戻すことができます。場合によっては、クラス オブジェクトのプロパティとメソッドを保存する前に、定義したクラスを正常にシリアル化できます。このような目的のために、PHP は __sleep メソッドと __wakeup メソッドを自動的に探します。
オブジェクトがシリアル化されると、PHP はオブジェクトを逆シリアル化した後、__sleep メソッドを呼び出します。 PHP は __wakeup メソッドを呼び出します。どちらのメソッドもパラメータを受け入れません。__sleep メソッドがない場合、PHP は、シリアル化する必要があるオブジェクトを含む配列を返す必要があります。
例 6.16 は、__sleep メソッドと __wakeup メソッドを使用してオブジェクトをシリアル化する方法を示しています。 __sleep メソッドは、id 属性がオブジェクトに含まれないようにします。 User オブジェクトを逆シリアル化するときに、__wakeup メソッドは id 属性の新しい値を確立します。実際の開発では、オブジェクトにリソース (画像やデータ ストリームなど) が含まれることがわかります。
リスト 6.16 オブジェクトのシリアル化


コードをコピー コードは次のとおりです。 クラス User

{
public $name;
public $id; {
/ / ユーザーに一意の ID を与える
$this->id = uniqid(); function __sleep()
{ //これをシリアル化しない - >id は id をシリアル化しません一意の ID
$ this->id = uniqid(); }
}
//オブジェクトの作成 オブジェクトの作成
$u = new User;
$u->name = "Leon" ;
//シリアル化 id 属性はシリアル化されていないことに注意してください。 ID の値は破棄されます
$s = Serialize($u);
//デシリアライズ ID は再割り当て
$u2 = unserialize($s);
//$u $u2 は異なる ID を持ちます $u と $u2 は異なる ID を持ちます
print_r($u);
?>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。