Introduction à la POO avec PHP - Partie 4
Par Méthylbro le jeudi 17 avril 2008, 06:30 - Tutoriels - Lien permanent
Un article par jour pendant une semaine. Je m’y tiens autant que faire ce peut à ce rythme. Aujourd’hui donc ; 4éme jour. Et voici la suite de notre série de billets consacré à la Programmation Orienté Object avec PHP.
Les concepts généraux de la POO (suite)
Les éléments Statiques
Un élément statique ; sera le même pour toutes les instances d’une même classe. Il peut aussi bien être une propriété ou une méthode. Et sera défini comme statique par le mot clé static. C’est en fait exactement le même principe que les variables statique au sein des fonctions ; sauf qu’ici cela s’applique aussi à vos classes.
Les propriétés statique
Si vous définissez une propriété comme statique ; elle aura toujours la même valeur ; quelle que soit les instances de votre classe. Et vous pourrez même la modifier ou la lire sans passer par l’une de ses instances.
Pour accéder ces propriétés statiques ; il est conseillé d’utiliser l’opérateur de résolution de portée.
Pour plus d’informations : http://fr.php.net/manual/fr/language.oop5.paamayim-nekudotayim.php.
Dans notre exemple ; si je définis la propriété Stylo ::couleur comme statique ; l’effet sera le suivant :
Class Stylo {
static public $couleur ;
}
// Je crée un stylo ; puis je met la couleur à FF00FF
$stylo1 = new Stylo() ;
$stylo1->couleur = ‘#FF00FF’ ;
// Je crée un autre stylo ; puis je change la couleur pour 00FFFF
$stylo2 = new Stylo() ;
$stylo2->couleur = ‘#00FFFF’ ;
// J’affiche la couleur des deux stylos.
echo $stylo1->couleur ; // Affiche #00FFFF
echo $stylo2->couleur ; // Affiche #00FFFF
// Je change encore une fois la couleur
Stylo::couleur = ‘#000000’;
echo $stylo1->couleur ; // Affiche #000000
echo $stylo2->couleur ; // Affiche #000000
Les méthodes statique
Les méthodes statiques sont utilisées généralement pour définir plus d’un constructeur. Nous ne attarderons pas plus dessus dans cet article. Sachez simplement qu’elles existent.
Commentaires
reArg ! static ne doit pas être utilisé comme une variable globale ...
Il vaut mieux définir une variable couleur que nous fixons dans le constructeur. Chaque stylo (instance de classe) a une couleur spécifique. Si l'on veut changer la couleur d'un stylo, on peut. Si on veut changer la couleur de tous les stylos, il faut faire appel à un vecteur (java) ou une collection (smalltalk) (en php, je ne sais pas comment ça se code) et appliquer la modification à tous les éléments du vecteur.
En gros, un vecteur c'est un tableau qui se dimensionne automatiquement (pas besoin de fixer la taille).
Bon courage à ceux qui veulent apprendre les notions d'objet ^^