Statične metode in $this v OOP v PHP

Znotraj statičnih metod $this ni na voljo. To se zgodi, ker se lahko statične metode kličejo zunaj konteksta objekta, preprosto z dostopom do imena razreda.

V običajnih metodah so dostopne tako statične kot tudi običajne lastnosti in metode.

Poglejmo si primere. Primer običajne metode:

Test.php<?php
  class Test
  {
    public static $staticProperty = 'static';
    public $usualProperty = 'usual';
    
    public function method()
    {
      echo self::$staticProperty; // izpiše 'static'
      echo $this->usualProperty;  // izpiše 'usual'
    }
  }
  
  $test = new Test;
  $test->method();
?>

Primer statične metode:

Test.php<?php
  class Test
  {
    public static $staticProperty = 'static';
    public $usualProperty = 'usual';
    
    public static function method()
    {
      echo self::$staticProperty; // izpiše 'static'
      echo $this->usualProperty;  // bo povzročilo napako
    }
  }
  
  $test = new Test;
  $test::method();
?>