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 :

[POO] Définition des variables membre static


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 24
    Par défaut [POO] Définition des variables membre static
    Bonjour,

    Existe t-il un moyen d'utiliser des opérateurs lors de la définition d'une variable statique de classe en PHP5?

    Par exemple le code suivant génère des erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    class Test {
     
      static $staticVar1 = 1 + 2;         // erreur : Parse error: syntax error, unexpected '+', expecting ',' or ';'
     
      static $staticVar2 = 0001 | 0002;   // erreur : Parse error: syntax error, unexpected '|', expecting ',' or ';'
    }
    ?>

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2007
    Messages : 193
    Par défaut
    ?? le mot cclé static sur une variable. Jamais vu, pour moi c'est public, private ou protected.

  3. #3
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    Essaye static public $var. Mais quel interet dans un objet ?

    ?? le mot cclé static sur une variable. Jamais vu, pour moi c'est public, private ou protected.
    Si mais pas dans un objet.

    Citation Envoyé par php.net
    Utilisation des variables static

    Une autre caractéristique importante de la portée des variables est la notion de variable static. Une variable statique a une portée locale uniquement, mais elle ne perd pas sa valeur lorsque le script appelle la fonction.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2007
    Messages : 193
    Par défaut
    Cool j'ai appris un truc, merci.

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 24
    Par défaut
    Oui, on peut utiliser les variables static dans les classes :
    http://fr.php.net/manual/fr/language.oop5.static.php

    Quand à la définition de la visibilité (private, protected ou public), elle doit être faite avant la déclaration static pour respecter la compatibilité avec PHP4. Par défaut, une variable static est publique.

    Mais ma question portait plus sur l'utilisation des opérateurs à droite de l'opérateur '=' lors de la définition de la variable static. Celle-ci ne semble pas être autorisée, mais je n'ai encore rien lu à ce propos...

    Quand à l'intérêt d'une telle définition, c'est pour définir la configuration d'un logger dont les fonctions sont static :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    class Logger {
     
      const DEBUG   = 0001;
      const WARNING = 0002;
      const ERROR   = 0004;
      ...
     
      // J'ainerais faire qq chose du genre :
      static $logLevel = self::DEBUG | self::ERROR;
    }
    ?>

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    Salut,

    Pour ce que j'en sais, et sa date un peu, style php 5.0??. Non tu ne peux pas !

    Tu vas devoir le définir en dehors de la classe, genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    class x
    {
    public static $r;
    }
    x::$r = new toto(); // ou ce que tu veux !
    En tout cas je procède ainsi me concernant.

    Par contre, pourrais tu m'expliquer cette syntaxe :
    static $logLevel = self::DEBUG | self::ERROR;

    Je dois bien avouer qu'elle est des plus obscures pour moi ! Et ce depuis toujours ....

    bye

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/12/2006, 12h23
  2. [POO] Liste des variables de mon Objet
    Par hisy dans le forum Langage
    Réponses: 2
    Dernier message: 20/09/2006, 10h51
  3. Réponses: 7
    Dernier message: 13/09/2006, 16h05
  4. [Système] Problème de définition des variables
    Par SLAM JACK dans le forum Langage
    Réponses: 6
    Dernier message: 29/03/2006, 19h53
  5. [POO] Portée des variables, classe....
    Par Avatar dans le forum Langage
    Réponses: 3
    Dernier message: 27/11/2005, 21h25

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