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 18/08/2011, 10h40   #1
lr
Membre du Club
 
Inscription : octobre 2003
Messages : 329
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 329
Points : 69
Points : 69
Envoyer un message via ICQ à lr
Par défaut Besoin d'aide pour comprendre le mot-clé "static"

Salut,

Je dois étudier du code qui n'est pas de moi et je me pose des questions sur le mot-clé "static".

La documentation PHP explique qu'il s'agit de propriétés ou de méthodes de classe qui peuvent être accédées sans instancier d'objet. C'est comme en java, ça n'a rien d'incompréhensible.

Mais moi j'ai ce code :
Code :
1
2
3
4
  protected function map( $batch, $target_item = NULL) {
 
    static $sources;
...
Lors d'une exécution pas à pas, si je m'arrête sur la ligne "static $sources", je vois que la variable n'est pas initialisée. Après la ligne, la variable contient un tableau. Comment est-ce possible ? Où puis-je trouver de la documentation sur ce comportement ?

Merci d'avance
lr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 10h56   #2
Membre Expert
 
Avatar de Bebel
 
Homme David B.
Développeur informatique
Inscription : avril 2003
Messages : 742
Détails du profil
Informations personnelles :
Nom : Homme David B.
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : avril 2003
Messages : 742
Points : 1 085
Points : 1 085
Bonjour,

Tu trouveras la doc ici

le mot clé static indique que la variable est partagé dans ton programme.
La documentation est assez complète, mais si tu as des questions précises hésite pas à demander plus d'indications.
__________________
Tout énigme a une solution ! Tout est question de discipline !
Bebel est actuellement connecté   Envoyer un message privé Réponse avec citation 01
Vieux 18/08/2011, 11h00   #3
lr
Membre du Club
 
Inscription : octobre 2003
Messages : 329
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 329
Points : 69
Points : 69
Envoyer un message via ICQ à lr
Merci pour ta réponse,

J'ai bien lu la doc :
Citation:
Le fait de déclarer des proriétés ou des méthodes comme statics vous permet d'y accéder sans avoir besoin d'instancier la classe. On ne peut accéder à une propriété déclarée comme statique avec l'objet instancié d'une classe (bien qu'une méthode statique le puisse).

Si aucune déclaration de visibilité n'est spécifiée, alors la propriété ou la méthode sera automatiquement spécifiée comme public.

Comme les méthodes statiques peuvent être appelées sans objet, la pseudo-variable $this n'est pas disponible dans la méthode déclarée en tant que statique.

On ne peut pas accéder à des propriétés statiques à travers l'objet en utilisant l'opérateur ->.

L'appel statique de méthodes non-statiques génère une erreur de niveau E_STRICT.

Comme n'importe quelle autre variable PHP statique, les propriétés statiques ne peuvent être initialisées qu'en utilisant un litéral ou une constante; les expressions ne sont pas permises. Ainsi, vous pouvez initialiser une propriété statique avec un entier ou un tableau, mais ni avec une autre variable, ni avec une valeur de retour, ni avec un objet.

Depuis PHP 5.3.0, il est possible de référencer la classe en utilisant une variable. La valeur de la variable ne peut être un mot-clé (e.g. self, parent et static).
Mais je ne vois pas où est expliqué ce que tu dis.
lr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 11h10   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Qu'est-ce qu'une variable statique ?
Portée des variables > §Utilisation des variables static
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 11h19   #5
lr
Membre du Club
 
Inscription : octobre 2003
Messages : 329
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 329
Points : 69
Points : 69
Envoyer un message via ICQ à lr
Parfait merci. Il y a donc le mot-clé static dans un cadre objet (comme expliqué dans la doc php) et le mot-clé static dans un cadre procédural (comme expliqué dans la FAQ).

Je m'excuse de n'avoir pas trouvé ça dans la FAQ tout seul, pourtant j'ai fais un recherche. Mais un peu trop rapidement visiblement
lr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h08.


 
 
 
 
Partenaires

Hébergement Web