Métodos estáticos y $this en POO en PHP
Dentro de los métodos estáticos no está disponible $this.
Esto ocurre porque los métodos estáticos
pueden ser llamados fuera del contexto de un objeto,
simplemente refiriéndose al nombre de la clase.
En los métodos habituales están disponibles tanto las propiedades y métodos estáticos como los habituales.
Veamos algunos ejemplos. Ejemplo de un método habitual:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public function method()
{
echo self::$staticProperty; // mostrará 'static'
echo $this->usualProperty; // mostrará 'usual'
}
}
$test = new Test;
$test->method();
?>
Ejemplo de un método estático:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public static function method()
{
echo self::$staticProperty; // mostrará 'static'
echo $this->usualProperty; // dará un error
}
}
$test = new Test;
$test::method();
?>