__construct
そして__destruct
、そのオブジェクトのインスタンスでスクリプトが実行されるたびに呼び出されます。オブジェクトをセッションに配置した場合、そのオブジェクトはページビュー全体で同じ値を保持せず、単なるオブジェクトです。これを示す簡単な例を書きました。
class MyClass{
var $myVar=1;
function __construct(){
$this->myVar++;
}
function __destruct(){
echo "destruct";
}
}
session_start();
$_SESSION['object']=new MyClass;
echo $_SESSION['object']->myVar;
これの出力は次のとおりです。
destruct2destruct
この部分は私に小さなループを投げかけます、そして私が間違っているならそこにいる誰かが私を訂正してくれることを願っています。 __destruct()
オブジェクトが作成され、セッションに配置されるときに破棄されるため、は2回呼び出されています。エコーアウトする$_SESSION['object']->myVar
とオブジェクトが再開され、その後破棄されます。
コードを変更し、スクリプトを取り出し$_SESSION['object']=new MyClass;
て再実行すると、次のようになります。
2破壊する
この場合も、オブジェクトが呼び出されるとオブジェクトは破棄され、関数の実行が終了します。基本的に、オブジェクトをセッションに格納する場合は、オブジェクトにアクセスするたびにオブジェクトが破棄されることを期待してください。