我有课堂课程
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
我尝试使用referece将它存储在变量中:
$mysql = &$session->mysql[$id]
但是同样的错误,如果我不使用&
我没有错误,但数据没有保存。
我怎样才能使这个工作?我希望树可以访问存储变量。
答案 0 :(得分:0)
找到它,我需要使用
function &__get($name) {
}
它有效。