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:
<?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:
<?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();
?>