Statik metodlar və $this PHP-də OOP-də
Statik metodların daxilində $this əlçatan deyil.
Bu ona görə baş verir ki, statik metodlar
obyekt kontekstindən kənarda çağırıla bilər,
sadəcə sinfin adına müraciət etməklə.
Adi metodlarda həm statik, həm də adi xassələr və metodlar əlçatandır.
Gəlin nümunələrə baxaq. Adi metod üçün nümunə:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public function method()
{
echo self::$staticProperty; // 'static' çap edəcək
echo $this->usualProperty; // 'usual' çap edəcək
}
}
$test = new Test;
$test->method();
?>
Statik metod üçün nümunə:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public static function method()
{
echo self::$staticProperty; // 'static' çap edəcək
echo $this->usualProperty; // səhv verəcək
}
}
$test = new Test;
$test::method();
?>