Que es?
La palabra reservada static en PHP es una declaracion que se les da a miembros y/o metodos de una clase. Un miembro o metodo de una clase declarado como static va a poder ser accesado sin necesidad de hacer una instancia del objecto en una variable.
En mi Post anterior enseño el manejo del Operador de reslucion ::
class Mensajes { public static $msok= 'Mensaje ok!'; public static function getMsOk() { echo self::$msok; } } Mensajes::getMsOk(); //-> Mensaje ok
Donde debe ir?
La palabra reservada static debe ser declara despues de la visibilidad de cada miembro y/o metodo. Por una compatibilidad con PHP 4, si no se pone una visibilidad (public, protected, private) esta la tomara por defecto como public.
class Mensajes { public static $msok= 'Mensaje ok!'; //lo tomara como public static function getMsOk() { echo self::$msok; } } Mensajes::getMsOk(); //-> Mensaje ok
Algunas restricciones
Una de la restricciones que tienes la declaracion static es que al no necesitar estar instanciado el objeto para llamar a sus metodos y/p miembros, la pseudo variable $this no esta permitida dentro de los metodos declarados como static, para esto se usara siempre self::.
class Mensajes { public static $msok= 'Mensaje ok!'; public static function getMsOk() { $this::$msok; //->Parse Error $this->$msok; //->Fatal Error } }