[PHP-users 26409] セッションをクラスで管理したい
古川敦史
agl @ mbi.nifty.com
2005年 8月 10日 (水) 13:05:32 JST
古川@フリーランスSEです。
セッション管理用にクラスを作ってみたのですが、うまく動きません。
どこか考え方が間違っているのでしょうか?
環境は
OS:Win2k
PHP:国際化版PHP 4.2.3
コードは以下のとおりです
--
class agSession {
function &manager($class, $init1=null, $init2=null)
{
if (!defined('AG_SESSION_KEY')) { define('AG_SESSION_KEY', '_AG_SESSION_KEY'); }
if ($class=='') return false;
if (!isset($_SESSION[AG_SESSION_KEY][$class])) {
$_SESSION[AG_SESSION_KEY][$class] = new $class($init1, $init2);
}
$instance = & $_SESSION[AG_SESSION_KEY][$class];
return $instance;
}
}
--
テストコードは次のとおり
--
<?php
define('AG_SESSION_KEY', 'AG_SESSION_KEY');
class session_test {
var $v = 0;
function inc()
{
echo "value:",$this->v,"<br>\n";
$this->v++;
}
}
require_once 'agSession.inc';
$class = 'session_test';
session_start();
echo "Before:<pre>",var_dump($_SESSION)qs,"</pre>\n";
$test = & agSession::manager($class);
$test->inc();
?>
<a href="test1.php">inc</a><br>
<a href="test2.php">test</a>
<?php
echo "<pre>", var_dump($_SESSION), "</pre>\n";
?>
--
これでテストを実行すると
--
Before:
array(0) {
}
となり、セッションに何も入ってない状態になっています。
どこが悪いのでしょうか?
-- /Private
aglib (http://aglib.sourceforge.jp)、開発中
//Furukawa Atsushi / 古川 敦史
E-Mail: agl @ violet.plala.or.jp
Y!Messanger: KeePeeLue
Skype: atsushifx
MOBILE: 070-5010-5225
FAX: 020-4622-3018
HomePage: http://www.aglabo.com/agl/
http://plaza.rakuten.co.jp/atsuhsifx/
PHP-users メーリングリストの案内