I had this class:
<?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) {}
}
?>
And I got this error:
Fatal error: Using $this when not in object context
But in this case, $this
is used within the class and I can't understand where the problem is. In other files, I get the information with acController::isAuthorized();
In a static function, you cannot $this.
$this implies existence of an object(instance of a class). While static implies a call to a class.
From the PHP documentation :
Because static methods are callable without an instance of the object created, the pseudo-variable $this is not available inside the method declared as static.