我在PHP 5.3.6上遇到问题,我收到以下错误:
Indirect modification of overloaded property CI_Session::$form_certs has no effect
我读到了它并发现了一个丑陋的解决方案来解决2007 here中旧的PHP 5.2.x错误。
但就我而言,导致错误的__get()
方法不是__set()
方法。
我的代码如下所示:
class CI_Session{
__set($name,$val){
return $_SESSION[$name] = $val;
}
}
导致错误的行:
$this->session->form_cert['foo'] = 'bar'; //$this->session is an instance of CI_Session
在尝试上述操作之前,我已尝试明确设置$this->session->form_cert = array();
,但问题仍然存在。
我还在PHP 5.3.3上对此进行了测试,并得到了相同的结果。
除了使用这个旧的解决方法之外我还能做些什么(这会破坏我已编写的另外500行代码)? (这是同一个错误吗?为什么它仍然存在于5.3.6中?)