session_start と __wakeup で無限ループ。

PHP 5.2.6 でのお話。

PHP のクラスでは __wakeup っていう特殊メソッドが使えます。
例えば、セッションに保存したオブジェクトを復元する時に、
変数を復元するだけじゃなく、何か計算をしたり、
データベースから最新の値を取ってきたりしたい時があります。
そんな時、そのクラスに __wakeup 関数を作って、その中に必要な処理を書いておけば、
オブジェクトが復元される時に、自動的にその処理が実行されます。便利です。

__wakeup について、詳しくはマニュアルを見てね。
PHP: マジックメソッド – Manual

今回は、
session_start と __wakeup を一緒に使うと無限ループしちゃう事があるから気を付けよう。
というお話。

“session_start と __wakeup で無限ループ。” の続きを読む