Статикалық әдістер және $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();
?>