LARAVEL-PHP:Propiedades y métodos estáticos
Propiedades y métodos estáticos
Las propiedades y métodos estáticos permiten que sean accesibles sin la necesidad de instanciar la clase. Es importante saber que no se puede acceder a una propiedad static con un objeto instanciado, aunque sí a un método static.
No es posible usar la pseudo-variable $this, ya que los métodos estáticos pueden ejecutarse sin tener una instancia del objeto, y $this hace referencia al objeto creado.
class Coche {
public static $color = 'rojo';
public function mostrarColor()
{
return self::$color;
}
}
print Coche::$color . "\n"; // Muestra "rojo"
// Creando el objeto miCoche:
$miCoche = new Coche();
print $miCoche->mostrarColor() . "\n"; // Muestra "rojo"
print $miCoche->color . "\n"; // Error, propiedad color no definida
print $miCoche::$color . "\n"; // Muestra "rojo"
En este ejemplo hemos visto que no se puede obtener la propiedad _$color _desde la instancia del objeto. En el siguiente ejemplo se puede obtener un método instanciando la clase o no:
class Coche {
public static function mostrarColor()
{
echo 'Rojo';
}
}
Coche::mostrarColor(); // Muestra Rojo
$miCoche = new Coche;
$miCoche->mostrarColor(); // Muestra Rojo
Comentarios
Publicar un comentario