を__setするためのキーとして配列を渡します。は、どのように私は次のように私はPHPのシングルトンセッションクラスを持っている魔法の方法
class Session {
static private $_instance = NULL;
private function __construct()
{
session_start();
}
/**
* Prevents the class from being cloned
* @return NULL
*/
private function __clone() { }
/**
* Returns the singleton instance of this class
* @return Session
*/
public static function getInstance()
{
if (!self::$_instance) {
self::$_instance = new Session();
}
return self::$_instance;
}
public function __get($key) {
if (isset($_SESSION[$key])) {
return $_SESSION[$key];
}
return NULL;
}
public function __set($key, $value)
{
$_SESSION[$key] = $value;
}
public function __isset($key) {
return isset($_SESSION[$key]);
}
public function __unset($key) {
unset($_SESSION[$key]);
}
}
$session = Session::getInstance();
$session->name = 'some name';
を次のように私は、オブジェクトを作成することができます私はまた、問題は、私は、このオブジェクトに配列を渡したいと、それ
echo $session->name;
のような値を得ることができます動かない。たとえば、私は何かを設定するようにする
$_SESSION['user']['data'] = array('name'=>'some name',"empId"=>'123');
私はこのようにしています。
$session->['user']['data'] = array('name'=>'some name',"empId"=>'123');
ただし、動作しません。あなたは何が間違っているのかを教えてください。
'$セッション - >ユーザー=配列( 'データ' =>配列( '名前' => 'いくつかの名前'、 "EMPID"=> '123')); ' – Rufinus
@Rufinus:なぜあなたは答えとしてそれを投稿していないのですか? – Gaurav
@Rufinus '$ session-> user = array( 'somekey' => array( 'data'));' - 最初のデータを上書きしませんか?あなたが何かを追加したい場合は、それは意志のコースの – DaveRandom