提问人:sunyaer 提问时间:6/6/2020 更新时间:6/6/2020 访问量:33
将类($this)的属性$action分配给变量$conf,为什么它是一个数组?
Assigning the property $action of a class ($this) to an variable $conf, why it is an array?
问:
在项目中使用的 thinkphp 框架的控制器中有以下函数.php其中有这样一行代码:“$conf = $this->$action”。
“if (property_exists($this, $action))” 正在检查类$this中是否存在属性$action。形成下一行代码“if (key_exists('login', $conf))”,在我看来$conf是一个数组。
我的问题是:“$conf = $this->$action”到底在做什么,将数组(属性$action?为什么$action是一个数组?)分配给变量 $conf?
public function checkAccessControl()
{
if (Config::get('frame.controller.checkAccessControl.exec')) {
$action = $this->request ->action(true);
if (property_exists($this, $action)) {
$conf = $this->$action;
if (key_exists('login', $conf)) {
if ($conf['login'] === true && $this->if_login === false) {
$this->access_control_check = false;
$this->response(["error"=>"未登录用户无权访问"],[],401,'json');//要求用户的身份认证
} else {
$this->access_control_check = true;
}
} else {
$this->access_control_check = false;
$this->response(["error"=>"代码错误:未标注访问类型"],[],500);//服务器内部错误,无法完成请求(未在控制器中标注login的访问控制)
}
} else {
$this->access_control_check = false;
$this->response(["error"=>"代码错误:未标注访问控制"],[],500,'json',['action'=>$this->request->action(true)]);//服务器内部错误,无法完成请求(未在控制器中标注方法的访问控制)
}
} else {
$this->access_control_check = Config::get('frame.controller.checkAccessControl.default.access_control_check');
}
}
答: 暂无答案
评论
$action
conf = $this->$action;
conf = $this->some_prop;
$conf
$this->some_prop