Metodi Statici e $this nella OOP in PHP
All'interno dei metodi statici $this non è accessibile.
Ciò accade perché i metodi statici
possono essere richiamati al di fuori del contesto di un oggetto,
semplicemente facendo riferimento al nome della classe.
Nei metodi ordinari sono accessibili sia le proprietà e i metodi statici, che quelli ordinari.
Vediamo alcuni esempi. Esempio con un metodo ordinario:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public function method()
{
echo self::$staticProperty; // stamperà 'static'
echo $this->usualProperty; // stamperà 'usual'
}
}
$test = new Test;
$test->method();
?>
Esempio con un metodo statico:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public static function method()
{
echo self::$staticProperty; // stamperà 'static'
echo $this->usualProperty; // genererà un errore
}
}
$test = new Test;
$test::method();
?>