Statičke metode i $this u OOP u PHP-u
Unutar statičkih metoda $this nije dostupan.
Ovo se dešava jer se statičke metode
mogu pozvati van konteksta objekta,
jednostavnim pozivanjem na ime klase.
U običnim metodama su dostupna i statička, i obična svojstva i metode.
Pogledajmo na primerima. Primer sa običnom metodom:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public function method()
{
echo self::$staticProperty; // ispisaće 'static'
echo $this->usualProperty; // ispisaće 'usual'
}
}
$test = new Test;
$test->method();
?>
Primer sa statičkom metodom:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public static function method()
{
echo self::$staticProperty; // ispisaće 'static'
echo $this->usualProperty; // prikazaće grešku
}
}
$test = new Test;
$test::method();
?>