Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/03/2008, 11h17   #1
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 149
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 149
Points : 26
Points : 26
Par défaut [POO] Signification du mot clé self

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
marty499 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2008, 11h56   #2
Nouveau Membre du Club
 
Inscription : septembre 2007
Messages : 56
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 56
Points : 36
Points : 36
Bonjour,

Celà s'utilise pour accéder à une variable de la classe parente (attention, les variables doivent être statiques).

Exemple :

Code :
1
2
3
4
5
6
7
8
9
class test
{
     public static $variable="Variable";
 
     public static function afficherVariable()
     {
           print(self::$variable);
     }
}
Ce code appelé depuis une page par test::afficherVariable(); va afficher "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,
Smiff est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 04/04/2008, 21h16   #3
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Citation:
Envoyé par Smiff Voir le message
Celà s'utilise pour accéder à une variable de la classe parente (attention, les variables doivent être statiques).
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
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 19/12/2008, 11h08   #4
Invité de passage
 
Inscription : décembre 2008
Messages : 1
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 1
Points : 1
Points : 1
Du coup, quelle différence y a-t-il entre un self::fonction() et un $this->fonction() ?
JeanLion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2008, 11h20   #5
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
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
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 40
Vieux 19/12/2008, 19h08   #6
Membre habitué
 
Homme Lucas GAUTHERON
Lycéen
Inscription : décembre 2008
Messages : 106
Détails du profil
Informations personnelles :
Nom : Homme Lucas GAUTHERON

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : décembre 2008
Messages : 106
Points : 145
Points : 145
+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"
lucas74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2008, 05h27   #7
Membre actif
 
Inscription : décembre 2006
Messages : 184
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 184
Points : 198
Points : 198
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.
Helfima est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h46.


 
 
 
 
Partenaires

Hébergement Web