Статичке методе и $this у ООП у PHP

Унутар статичких метода није доступан $this. То се дешава због тога што се статичке методе могу позивати ван контекста објекта, једноставним обраћањем називу класе.

У обичним методама су доступна и статичка, и обична својства и методе.

Погледајмо на примерима. Пример на обичну методу:

Test.php<?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();
?>

Пример на статичку методу:

Test.php<?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();
?>