br> PHP の上級バージョンOOPテクノロジー
基本的な OOP コンセプトを見た後、より高度なテクニックをお見せします:
シリアル化(シリアル化)
PHP では、永続オブジェクトは、状態と機能を維持する複数のアプリケーションで参照できます。これは、オブジェクトをファイルまたはデータベースに保存し、後でインストールできることを意味します。 オブジェクトを入力します。これはいわゆるシリアル化メカニズムです。 PHP は
をサポートしており、オブジェクトを通じて呼び出すことができます。メソッド オブジェクトの文字列表現を返すことができます。ただし、 シリアル化では、 メソッド を含めずに、
オブジェクトのメンバー データを保存するだけです。
PHP4 で、オブジェクトを文字列 $ s、次にオブジェクトを解放し、オブジェクトを
$
obj にデシリアライズします。 オブジェクトメソッドを使用してください! (a) のドキュメントには、この動作が将来のバージョンでも機能するという保証がないため、これを行うことはお勧めしません。 (b)
これは、シリアル化されたバージョンをディスクに保存してスクリプトを終了するときに誤解を招く可能性があります。 今後このスクリプトを 実行する場合、
は、オブジェクトを逆シリアル化するときに、オブジェクトのメソッドも文字列表現にはメソッドがまったく含まれていないため、存在します。 つまり、PHP シリアル化は、オブジェクトのメンバー変数を保存するのに非常に便利です。 (関連する配列や配列をファイルにシリアル化することもできます)。
例:
------------------ -------------------------------------------------- ------------
<?php
$
obj=new Classfoo(); $
str
=serialize($obj); 保存
$str
ディスクへ
//数か月後
//
ディスクからロードstr
$ obj2=unserialize($str) ?>--------------------- ---- ------------------------------------------------ ---- ----
メンバー データは復元されましたが、メソッドは復元されませんでした (ドキュメントによると)。その結果、 には、
$obj2->x
> メンバー変数のようなものを使用してのみアクセスできることになります (他の方法はありません。 )なので、家では試さないでください。 この問題を解決するにはいくつかの方法がありますが、この簡潔な記事にはあまりにも悪いので省略します。
PHP
の以降のバージョンで完全にシリアル化された機能を喜んで歓迎します。