[PHP-users 27586] セッション中のオブジェクトの持ち回りについて

WataruIkeda wataru_ike @ yahoo.co.jp
2005年 11月 23日 (水) 03:22:42 JST


池田と申します。


PHP4徹底攻略改訂版のコードをPHP5上で実行しているのですが、$_SESSION配列
へ登録したオブジェクトのプロパティをうまく持ち回る方法はないでしょうか。

以前PHP4上で作成したときは問題なかったのですが、

if (!isset($_SESSION["sel"]) ||
    !_$SESSION["sel"]->IsPageChangeRequested()) {
    /* はじめてアクセスする場合にオブジェクトを作成。以降は、
       セッションで持ち回ることを想定。*/
    $_SESSION["sel"] = new myPgSelect;
}

というコードで、オブジェクトを作成する前にメソッドへアクセスするロジック
だと、以下のエラーになります。

The script tried to execute a method or access a property of an
incomplete object. Please ensure that the class definition "myPgSelect"
of the object you are trying to operate on was loaded _before_
unserialize() gets called or provide a __autoload() function to load the
class definition

PHPマニュアルから、serialize()とunserialize()を利用したオブジェクトの保
存方法も確認したのですが同一スクリプト上で利用する場合にピンときません。

クラスの定義を別ファイルとしてrequire_once()で呼び出すというアイデアを見
付けたのですが、どのような形になるのでしょうか。

このあたりをもっと調べてみて、というので構いません。お知らせ頂けましたら
幸いです。

環境は、VineLinux3.2上でPHP5.0.5、apache1.3.3、Postgresql7.4.8という組み
合せです。

宣しくお願い致します。

-- 
Wataru Ikeda





PHP-users メーリングリストの案内