Statik metodlar va $this PHPda OOPda

Statik metodlar ichida $this ga kirish mumkin emas. Buning sababi, statik metodlar ob'ekt kontekstisiz chaqirilishi mumkin, shunchaki klass nomiga murojaat qilgan holda.

Oddiy metodlarda ham statik, ham oddiy xususiyatlar va metodlar mavjud.

Keling, misollar orqali ko'rib chiqaylik. Oddiy metodga misol:

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

Statik metodga misol:

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