Статички методи и $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();
?>