POO : attributs/méthodes de classe, self avec static ? ou this ? [Résolu/Fermé]

Signaler
Messages postés
184
Date d'inscription
mercredi 7 mai 2014
Statut
Membre
Dernière intervention
28 septembre 2017
-
Messages postés
184
Date d'inscription
mercredi 7 mai 2014
Statut
Membre
Dernière intervention
28 septembre 2017
-
Hey, bonjour à tous !

Petite question de POO :)
Il me semble avoir bien compris l'utilité de la propriété static lorsqu'il s'agit d'utiliser des attributs / méthodes à l'extérieur de ma classe.
Je comprend aussi l'intérêt pour un héritage de classe.
J'ai plus de mal à voir l'utilité lorsqu'il s'agit d'être à l'intérieur de ma classe.

Je ne vois pas de différence claire entre :
class Exemple{

	private static $_myvar;

	public function getVar(){
		return self::$_myvar;
	}
}

Et cela :
class Exemple{

	private $_myvar;

	public function getVar(){
		return $this->_myvar;
	}
}


J'ai eu cette suggestion :
$this->_myvar est destiné à être modulable tandis que
self::$_myvar est destiné à garder la même valeur.
Est-ce exact ?
Est-il incorrect d'attribuer une valeur modulable à un self::$_myvar ?
Y-t-il vraiment une différence importante entre l'un ou l'autre dans ce contexte sinon ?

Merci d'avance :)
Yuh

1 réponse

Messages postés
16339
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mai 2021
2 830
Bonjour,

Si c'est static la donnée appartient à la classe, sinon ça appartient à l'objet.

Notamment, si tu changes la valeur d'un attribut static alors ça affectera tous les objets de la classe, contrairement à un attribut "normal" qui change uniquement pour l'objet sur lequel on fait le changement (this).
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
184
Date d'inscription
mercredi 7 mai 2014
Statut
Membre
Dernière intervention
28 septembre 2017
24
Merci beaucoup :) !