考虑以下
Class someController {
public static $layout = 'index';
}
然后在另一个范围
$layout = 'default';
$controller = 'someController';
if(property_exists($controller, 'layout')){
$layout = $controller::$layout;
}
那么$layout
的内容是什么?它将尝试访问someController::$layout
还是someController::default
?
当PHP解析代码时,静态类变量的引用优先于独立变量。
编辑:事实上,解析器甚至不认为$controller::$layout
引用了$layout
变量,因为它使用::
作为问题注释中提到的@Paul Crovella。