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

Entradas populares de este blog

reloj obs---datetime.lua

10 videojuegos gratis para aprender JavaScript en línea

Filtrando por fecha