- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- PHP/言語仕様/セッションにオブジェクトのインスタンスを登録する へ行く。
- 1 (2007-02-09 (金) 19:26:15)
セッションにオブジェクトのインスタンスを登録する
オブジェクトの状態を保持したままセッションに出し入れできる。以下のコードで検証した。PHP4でも同様になる。
<? class Test { var $var; function __construct() { } function get() { return $this->var; } function set($v) { $this->var = $v; } function twice() { $this->var *= 2; } } // セッション開始するが、 // FORMDATAでnewの指定があればセッション初期化する session_start(); if ($_REQUEST['new']) { session_unset(); } // 1回目のリクエスト if (!$_SESSION['test']) { print "A<br>"; // Testクラスのインスタンスを作成し、 $t = new Test; $var = $t->get(); //フィールド変数$varに100をセットする $t->set(100); // その状態でセッションに登録する $_SESSION['test'] = $t; } // 2回目以降のリクエスト else { print "B<br>"; // セッションからインスタンスを取り出し、 $t = $_SESSION['test']; // フィールド変数$varを2倍する $t->twice(); $var = $t->get(); // その状態でセッションに登録する $_SESSION['test'] = $t; } ?> <html> <body> <? print "$var<br>\n"; print "<pre>"; print_r($t); print "</pre>"; ?> <a href="<?=$_SERVER['PHP_SELF']?>">next</a><br> <a href="<?=$_SERVER['PHP_SELF']?>?new=1">new</a> </body> </html>