POO : attributs/méthodes de classe, self avec static ? ou this ?

Résolu
Yuh12 Messages postés 184 Date d'inscription   Statut Membre Dernière intervention   -  
Yuh12 Messages postés 184 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:
  • POO : attributs/méthodes de classe, self avec static ? ou this ?
  • Happy poo - Télécharger - Arcade

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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
Yuh12 Messages postés 184 Date d'inscription   Statut Membre Dernière intervention   24
 
Merci beaucoup :) !
0