Statické metódy a $this v OOP v PHP
Vnútri statických metód nie je prístupný $this.
Deje sa tak preto, že statické metódy
môžu byť volané mimo kontextu objektu,
jednoducho prístupom k názvu triedy.
V obyčajných metódach sú prístupné ako statické, tak aj obyčajné vlastnosti a metódy.
Pozrime sa na príklady. Príklad na obyčajnú metódu:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public function method()
{
echo self::$staticProperty; // vypíše 'static'
echo $this->usualProperty; // vypíše 'usual'
}
}
$test = new Test;
$test->method();
?>
Príklad na statickú metódu:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public static function method()
{
echo self::$staticProperty; // vypíše 'static'
echo $this->usualProperty; // vyvolá chybu
}
}
$test = new Test;
$test::method();
?>