Statiniai metodai ir $this OOP PHP
Statinėse metodose neprieinamas $this.
Taip yra dėl to, kad statiniai metodai
gali būti iškviečiami už objekto konteksto,
tiesiog kreipiantis į klasės pavadinimą.
Įprastuose metoduose prieinamos tiek statinės, tiek įprastos savybės ir metodai.
Pažiūrėkime pavyzdžiais. Pavyzdys su įprastu metodu:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public function method()
{
echo self::$staticProperty; // išves 'static'
echo $this->usualProperty; // išves 'usual'
}
}
$test = new Test;
$test->method();
?>
Pavyzdys su statiniu metodu:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public static function method()
{
echo self::$staticProperty; // išves 'static'
echo $this->usualProperty; // išmes klaidą
}
}
$test = new Test;
$test::method();
?>