PHPのクラスの知識---クレイジーマジックメソッドシリアライズ、_sleep、__ウェイクアップ、アンシリアライズ、__自動ロード、__クローン

  • -----ファイルに書き込まれたインスタンス化されたオブジェクトをシリアル化
  • シリアル化を呼び出すとき__sleepがトリガ
<?PHPの

クラスmycoach 
{ 
    パブリック関数__construct($名、$年齢、$てexpertin = []){ 

        $ この - >名前= $名; 
        $ この - >年齢= $年齢; 
        $ この - >てexpertin = []; 
        $ この - >てexpertin = $てexpertin。
    } 

    パブリック関数__sleep()
    { 
        戻り [ ' 名前'' 年齢'' てexpertin ' ]。
    } 
}

CPC $ = 新しい新しい mycoach(' Chenpeiチャン'22、[ ' 三田'' タイのボクシング'' 柔術' ]); 
$ srobj = シリアル化($ CPC); 
ますfile_put_contents(' cpcssecret.txt ' 、$のsrobj)。
?> 

キーポイント:
内部----クラスの実装__sleep()ファイルに書き込むことができ、制御のタイプを達成するために、データ構造、プロパティのすべてのクラスからの要素の配列を返す
----パラメータとしてメソッドオブジェクトをシリアライズ戻り値が書き込まれるデータファイルです。
の形で記録されたオブジェクトファイルを生成:
O:7: "mycoach":3:{S:4: "名前"; S:9: "陳Peichang"; S:3: "年齢"; I:22; S:8: "てexpertin";:3 :{I:0; S:6: "三田"; I:1; S:6: "タイボクシング"; I:2; S:12: "BJJ";}}
 

 

  • -----記録ファイルをアンシリアライズするオブジェクトクラスのインスタンスを復元します
  • 実行アンシリアライズ__wakeupは------、いくつかの初期化を実行するときに呼び出されます
<?PHPの

クラスmycoach 
{ 
    パブリック関数__construct($名、$年齢、$てexpertin = []){ 

        $ この - >名前= $名; 
        $ この - >年齢= $年齢; 
        $ この - >てexpertin = []; 
        $ この - >てexpertin = $てexpertin。
    } 

    パブリック関数__sleep()
    { 
        戻り [ ' 名前'' 年齢'' てexpertin ' ]。
    } 

    パブリック__wakeup関数()
    { 
        #使用法:オブジェクト(デシリアライズ)を復元するように初期化される時間は、
        エコー" オブジェクトを復元する"" \ N- " ; 

    } 
} 

$ objdate =のfile_get_contents(' cpcssecret.txt ' ); 
のvar_dump( )($ objdate)をアンシリアライズする;
?> 

出力:
オブジェクト復元
オブジェクト(mycoach)#1(3){。。
  [ "名前"] =>
  文字列(9) "チェンPeichang"
  [ "年齢"] =>
  INT(22)と
  [ "てexpertin"] =>
  アレイ(3){
    [0] =>
    文字列(6) "三田"
    [1] =>
    文字列(6) "タイボクシング"
    [2] =>
    文字列"BJJ"(12)と
  }
}
  • クローンコピーオブジェクトのプロパティ
  • __cloneは、プロパティがカスタムプロパティを使用する、コピーすることができるかを制限することができます
  • クラス定義の試験管を使用する唯一の方法を__autoload

おすすめ

転載: www.cnblogs.com/saintdingspage/p/10960865.html