jueves, 22 de junio de 2017

VARIABLES ESTATICAS


Declarar propiedades o métodos de clases como estáticos los hacen accesibles sin la necesidad de instanciar la clase. Una propiedad declarada como static no puede ser accedida con un objeto de clase instanciado (aunque un método estático sí lo puede hacer).

las clases estáticas siempre serán las mismas, no podrán ser cambiadas

<?phpfunction foo(){
    static $int = 0;          // correcto
    static $int = 1+2;        // correcto (a partir de PHP 5.6)
    static $int = sqrt(121);  // incorrecto (ya que es una función)

    $int++;
    echo $int;
}?>




class Foo{
    public static $mi_static = 'foo';

    public function valorStatic() {
        return self::$mi_static;
    }
}

class Bar extends Foo{
    public function fooStatic() {
        return parent::$mi_static;
    }
}


print Foo::$mi_static . "\n";$foo = new Foo();
print $foo->valorStatic() . "\n";
print $foo->mi_static . "\n";      // "Propiedad" mi_static no definidaprint $foo::$mi_static . "\n";$nombreClase = 'Foo';
print $nombreClase::$mi_static . "\n"; // A partir de PHP 5.3.0print Bar::$mi_static . "\n";$bar = new Bar();
print $bar->fooStatic() . "\n";?>

No hay comentarios:

Publicar un comentario