Signaler

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

Posez votre question Yuh12 186Messages postés mercredi 7 mai 2014Date d'inscription 28 septembre 2017 Dernière intervention - Dernière réponse le 28 sept. 2017 à 14:43 par Yuh12
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
Utile
+1
plus moins
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).
Yuh12 186Messages postés mercredi 7 mai 2014Date d'inscription 28 septembre 2017 Dernière intervention - 28 sept. 2017 à 14:43
Merci beaucoup :) !
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !