IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Besoin d'aide pour comprendre le mot-clé "static"


Sujet :

Langage PHP

  1. #1
    lr
    lr est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 338
    Points : 114
    Points
    114
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    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 : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    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.

  3. #3
    lr
    lr est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 338
    Points : 114
    Points
    114
    Par défaut
    Merci pour ta réponse,

    J'ai bien lu la doc :
    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.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777

  5. #5
    lr
    lr est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 338
    Points : 114
    Points
    114
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. besoin d'aide pour comprendre Example zope
    Par julien.63 dans le forum Zope
    Réponses: 3
    Dernier message: 22/08/2007, 15h41
  2. MVC besoin d'aide pour comprendre
    Par damien77 dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 26/06/2007, 12h17
  3. besoin d'aide pour comprendre un exo simple de java
    Par chadel dans le forum Langage
    Réponses: 2
    Dernier message: 16/03/2007, 23h27
  4. [MySQL] besoin d'aide pour comprendre les injections sql
    Par cassy dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 28/01/2007, 14h21
  5. Besoin d aide pour comprendre un code
    Par litlebasic dans le forum Delphi
    Réponses: 4
    Dernier message: 22/06/2006, 13h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo