La paraula clau “static” ens deixa utilitzar una propietat o un mètode de classe sense haver de crear una instància d’aquella classe.
Per tant, aquesta funciona així:
<?php class Restaurant { public static function menjar() { echo "Restaurant mexicà"; } } echo Restaurant::menjar(); ?>
Quan es convina amb l’operador de resolució ens deixa accedir a la informació de la classe sense haver d’exemplificar res.
Tot i això, cal tenir en compte alguns consells a l’hora d’utilitzar aquesta paraula clau:
- Per motius de compatibilitat amb PHP 4, si no s’utilitza cap declaració de visibilitat, es tractarà a les propietats o mètodes com si haguessin estat definits com public.
- A causa que els mètodes estàtics es poden invocar sense tenir creada una instància de l’objecte, la pseudo-variable $this no està disponible dins dels mètodes declarats com a estàtics.
- Les propietats estàtiques no poden ser accedides a través de l’objecte utilitzant l’operador fletxa (->).
- Invocar mètodes no estàtics estàticament genera un advertiment de nivell E_STRICT.
- Com qualsevol altra variable estàtica de PHP, les propietats estàtiques només poden ser inicialitzades utilitzant un string literal o una constant; les expressions no estan permeses. Per tant, es pot inicialitzar una propietat estàtica amb enters o arrays (per exemple), però no es pot fer amb una altra variable, amb el valor de devolució d’una funció, o amb un objecte.