Bonjour , je recommence tout juste à manipuler le php orienté objet, j'ai des soucis sur la syntaxe :
que signifie " self::$variable "
également :
has_var
get_var
set_var
merci
Bonjour , je recommence tout juste à manipuler le php orienté objet, j'ai des soucis sur la syntaxe :
que signifie " self::$variable "
également :
has_var
get_var
set_var
merci
Bonjour,
Celà s'utilise pour accéder à une variable de la classe parente (attention, les variables doivent être statiques).
Exemple :
Ce code appelé depuis une page par test::afficherVariable(); va afficher "Variable".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class test { public static $variable="Variable"; public static function afficherVariable() { print(self::$variable); } }
A noter que pour utiliser les :: il faut que la fonction et la variable soient statiques.
Sinon utiliser $this->variable dans la fonction et pour l'appel dans la page $instanceTest= new test(); $instanceTest->afficherVariable();
Bon, voilà en gros si je me suis pas planté quelque part. Pour les trois autres variables aucune idée, peut-être lié aux fonctions __set() et __get() des classes.
Bonne journée,
Ce n'est pas tout à fait exact.
Le mot-clef self permet d'utiliser une méthode ou une propriété de la classe elle-même. Pour utiliser la classe parente, il faut utiliser le mot clef parent.
Utiliser ces mots clefs évite simplement de répéter le nom de la classe dans ton code, ce qui simplifie l'évolution du code.
Tu peux aussi utiliser ces mots clefs pour appeler des méthodes ou propriétés non statiques.
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Du coup, quelle différence y a-t-il entre un self::fonction() et un $this->fonction() ?
self::fonction() appelle une méthode déclarée avec le mot-clef static. Cette méthode n'a pas accès aux propriétés non statiques de la classe, elle ne peut utiliser que les propriétés déclarées elles aussi avec le mot clef static, ce qui signifie que leur valeur est commune à tous les objets de cette classe.
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
+1, self permet d'accéder à une donnée d'une classe, et non d'un objet (c'est à dire une instance de classe).
En gros, tu accèdes à une variable, une constante, une méthode, dans un contexte "static"![]()
je conseil l'utilisation de self avec parcimonie
en règle générale, le php n'est pas trop static car le script ne dur qu'un faible temps.
a contrario parent peut être nettement plus intéressant, voir très intéressant reste qu'il faut avoir un code bien orienté objet.
Partager