Staatilised meetodid ja $this OOP-s PHP-s

Staatiliste meetodite sees pole $this kättesaadav. See tuleneb sellest, et staatilisi meetodeid saab kutsuda väljaspool objekti konteksti, lihtsalt viidates klassi nimele.

Tavameetodites on kättesaadavad nii staatilised kui ka tavalised omadused ja meetodid.

Vaatame näidete varal. Näide tavameetodi kohta:

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

Näide staatilise meetodi kohta:

Test.php<?php
  class Test
  {
    public static $staticProperty = 'static';
    public $usualProperty = 'usual';
    
    public static function method()
    {
      echo self::$staticProperty; // väljastab 'static'
      echo $this->usualProperty;  // annab vea
    }
  }
  
  $test = new Test;
  $test::method();
?>