Статичке методе и $this у ООП у PHP
Унутар статичких метода није доступан $this.
То се дешава због тога што се статичке методе
могу позивати ван контекста објекта,
једноставним обраћањем називу класе.
У обичним методама су доступна и статичка, и обична својства и методе.
Погледајмо на примерима. Пример на обичну методу:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public function method()
{
echo self::$staticProperty; // исписаће 'static'
echo $this->usualProperty; // исписаће 'usual'
}
}
$test = new Test;
$test->method();
?>
Пример на статичку методу:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public static function method()
{
echo self::$staticProperty; // исписаће 'static'
echo $this->usualProperty; // даће грешку
}
}
$test = new Test;
$test::method();
?>