我上过这堂课:
<?php
class acController {
protected $_enabledPages = array(
'front_login.php',
);
protected $_enabledDirectories = array (
'admin'
);
public static function isAuthorized() {
echo '<pre>';
acController::checkResource($_SERVER['SCRIPT_URI'], $this->_enabledDirectories);
acController::checkResource($_SERVER['SCRIPT_URI'], $this->_enabledDirectories);
echo '</pre>';
}
protected static function checkResource($urlAddress, $addressArray) {}
}
&GT;
我收到了这个错误:
致命错误:不在对象上下文中时使用$ this
但是在这种情况下,$ this在课堂上使用,我无法理解问题出在哪里。在其他文件中,我通过acController::isAuthorized();
祝你好运, 乔治!
答案 0 :(得分:1)
在静态功能中,你不能$ this。
$ this 表示存在对象(类的实例)。虽然静态意味着对类的调用。
从PHP文档:
因为静态方法可以在没有对象实例的情况下调用 创建时,伪变量$ this在方法中不可用 声明为静态。
答案 1 :(得分:0)
您遇到问题,因为您的方法是静态的。这表示该类的一个实例,但如果您将其用作静态,则可以在没有该类的任何实例的情况下使用这些方法。所以你不能用静力学。