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
}
}






