【发布时间】:2014-02-24 02:55:57
【问题描述】:
我有课
class Session {
public $storage;
private function __construct($storage) {
$this->storage = $storage ? $storage : new stdClass();
}
function __get($name) {
return $this->storage->$name;
}
function __set($name, $value) {
$this->storage->$name = $value;
}
function __isset($name) {
return isset($this->storage->$name);
}
}
我想以数组为键:
$id = uniqid('res_');
if (!isset($session->mysql)) {
$session->mysql = array();
}
$session->mysql[$id] = array(
'host' => $host,
'user' => $username,
'pass' => $password,
'name' => $db);
但出现错误:Indirect modification of overloaded property Session::$mysql has no effect
我尝试使用参考将其存储在变量中:
$mysql = &$session->mysql[$id]
但同样的错误,如果我不使用& 我没有错误但数据没有保存。
我怎样才能使它工作?我想像树一样访问存储变量。
【问题讨论】:
标签: php magic-methods