Un membre static appartient à la classe et non à une instance : on y accède avec ::, sans objet. self:: désigne la classe courante et static:: la classe appelée (liaison statique tardive). Un abus d'état statique rend le code difficile à tester.
Exemple
class Compteur {
public static int $total = 0;
}
Compteur::$total++;