php - Fatal error: Using $this when not in object context but everything looks fine
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 when in this case $this is used within the class and I can't understand where is the problem. In other files I get the information withacController::isAuthorized();
Best regards, George!
Answer
Solution:
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 :
Answer
Solution:
You have a problem because your methods are statics. this represents an instance of the class but if you use it as static, the methods could be used without any instance of the class. So you can't this with statics.