我有一个看起来像这样的方法:
public function init(){
$this->app->classes = [
'route' => new Route(),
'routeParams' => new RouteParams()
];
return $this->app;
}
App
中的classes属性如下所示
class App{
protected $classes = [];
}
我有另一个最终被调用的方法,其中包含这一行:
// Both $val and $item1 are strings
$this->app->classes['routeParams']->$val = $item1;
当我运行它时,我收到此错误:
间接修改重载属性App :: $ classes无效
我的RouteParams
课程如下:
class RouteParams{
private $parameters = array();
public function __get($name){
if(isset($this->parameters[$name])){
return $this->parameters[$name];
}
return '';
}
public function __set($name, $value){
$this->parameters[$name] = $value;
}
}
导致我的错误的原因是什么?如何解决?