Statikus metódusok és $this az OOP-ban PHP-ben
A statikus metódusokon belül a $this nem elérhető.
Ez azért történik, mert a statikus metódusok
objektum kontextusán kívül is meghívhatók,
egyszerűen csak az osztály nevére hivatkozva.
A normál metódusokban mind a statikus, mind a normál tulajdonságok és metódusok elérhetők.
Nézzünk példákat. Példa egy normál metódusra:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public function method()
{
echo self::$staticProperty; // kiírja 'static'-ot
echo $this->usualProperty; // kiírja 'usual'-t
}
}
$test = new Test;
$test->method();
?>
Példa egy statikus metódusra:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public static function method()
{
echo self::$staticProperty; // kiírja 'static'-ot
echo $this->usualProperty; // hibát jelez
}
}
$test = new Test;
$test::method();
?>