La palabra reservada 'Static'

Declarar miembros de clases o métodos como estáticos, los hace accesibles desde afuera del contexto del objeto. Un miembro o método declarado como estático no puede ser accesado con una variable que es una instancia del objeto y no puede ser redefinido en una extensión de la clase.

La declaración static debe estar después de la declaración de visibilidad. Por compatibilidad con PHP 4, si no se usa la declaración de visibilidad, entonces el miembro o método será tratado tal si como se hubiera declarado como public static.

A causa de que los métodos estáticos son accesibles sin que se haya creado una instancia del objeto, la pseudo variable $this no está disponible dentro de los métodos declarados como estáticos.

De hecho las llamadas a métodos static son resueltas en tiempo de ejecución. Cuando se una explícitamente un nombre de clase, el método ya ha sido identificado completamente y no es necesario aplicar las reglas de herencia. Si la llamada es hecha por self entonces self es traducido a la clase actual, esto es, la clase a la que pertenece el código. Aquí tampoco aplican las reglas de herencia.

Las propiedades estáticas no pueden ser accesadas a través del objeto usando el operador de flecha ->.

Ejemplo 19-13. Ejemplo de miembro Static

<?php
class Foo
{
    
public static $my_static = 'foo';

    
public function staticValue() {
        return
self::$my_static;
    }
}

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


print
Foo::$my_static . "\n";

$foo = new Foo();
print
$foo->staticValue() . "\n";
print
$foo->my_static . "\n";      // Undefined "Property" my_static

// $foo::my_static is not possible

print Bar::$my_static . "\n";
$bar = new Bar();
print
$bar->fooStatic() . "\n";
?>

Ejemplo 19-14. Ejmeplo de método Static

<?php
class Foo {
    
public static function aStaticMethod() {
        
// ...
    
}
}

Foo::aStaticMethod();
?>

Hosting by: hurra.com
Generated: 2007-01-26 18:00:52