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 :

Intérêt d'un attribut statique [PHP 5.0]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 509
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 509
    Par défaut Intérêt d'un attribut statique
    Bonjour,

    Dans mes développements qui sont quasiment entièrement en objet je constate que j'ai pas d'intérêt particulier à utiliser un classe static ou un de ses membre. Mais en réfléchissant quel est vraiment l'intérêt de ça mise à part une différence d'approche à la méthode et d'un point de vue syntaxe ?

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    L'un des intérets d'une méthode statique est de pouvoir être appelée sans avoir à créer d'instance de l'objet en lui même.

    L'un des intérêts d'un membre de classe statique est que sa valeur est commune à toutes les instances d'une même classe. Si tu crées par exemple un membre de classe nbInstances et que dans le constructeur tu incrémentes cette valeur et que dans le destructeur tu la décrémentes, tu peux savoir à tout moment le nombre d'instances actuellement créée de ta classe.

    EDIT:
    Plus d'infos peuvent être trouvées dans la documentation officielle http://fr.php.net/manual/fr/language.oop5.static.php

    Tu peux aussi regarder du côté du design-pattern Singleton qui utilise ce genre de choses pour n'avoir toujours qu'une seule instance d'une classe donnée (pour ta base de données par exemple) avec un exemple d'implémentation en php ici

  3. #3
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 509
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 509
    Par défaut
    Ok donc c'est comme dans les autres langages. En C# en m'avait bien expliqué que cela permet d'avoir une seul instance. Par exemple, si la gestion d'une connexion SQL se fait dans l'objet static et que si j'appelle plusieurs fois cette même classe c'est pas pour autant que ça ouvrira x fois une connexion mais qu'une seul fois.
    Ai je bien compris ?
    Parce qu'il me semble qu'il existe un méthode magic pour ça dans PHP5.

  4. #4
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Le fait de n'avoir qu'une seule instance c'est le design-pattern singleton qui effectivement se repose sur l'utilisation du mot clé static. Il est donc implémenté/implémentable dans plusieurs langages puisque c'est surtout une "manière" d'architecturer ton code.

    Mais comme je te l'ai montré ca n'est pas la seule application puisqu'on peut aussi s'en servir pour appeler des méthodes sans instancier une classe ou alors pour avoir une variable commune à toutes les instances (et donc changer un réglage dynamiquement qui s'appliquera automatiquement à toutes les instances).

  5. #5
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 509
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 509
    Par défaut
    Citation Envoyé par koopajah Voir le message
    Le fait de n'avoir qu'une seule instance c'est le design-pattern singleton qui effectivement se repose sur l'utilisation du mot clé static. Il est donc implémenté/implémentable dans plusieurs langages puisque c'est surtout une "manière" d'architecturer ton code.

    Mais comme je te l'ai montré ca n'est pas la seule application puisqu'on peut aussi s'en servir pour appeler des méthodes sans instancier une classe ou alors pour avoir une variable commune à toutes les instances (et donc changer un réglage dynamiquement qui s'appliquera automatiquement à toutes les instances).
    Mmmmhh! en effet ça peut être très utile ça.
    Merci pour cette explication.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    C'est parfois pratique de regrouper des fonctions ayant un même thème sous un même nom. C'est un peu la fonction des namespaces direz vous mais c'est très récent.

    Accessoirement la visibilité globale d'un membre static permet d'éviter cette horreur qu'est $GLOBALS en cas de besoin.

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

Discussions similaires

  1. [IBATIS] Intérêt de l'attribut columnIndex
    Par Heliodromel dans le forum Persistance des données
    Réponses: 0
    Dernier message: 12/09/2008, 11h22
  2. Appel d'un attribut statique dans la classe courante
    Par picwic dans le forum Langage
    Réponses: 15
    Dernier message: 30/01/2008, 23h00
  3. Attribut statique = instance d'une classe
    Par allserv dans le forum C++
    Réponses: 13
    Dernier message: 03/01/2008, 18h42
  4. Interface et attributs statiques
    Par Mayhem dans le forum Langage
    Réponses: 4
    Dernier message: 20/06/2006, 16h24
  5. [POO] Heritage d'attribut statique surchargé !
    Par Jaxofun dans le forum Langage
    Réponses: 25
    Dernier message: 16/08/2005, 09h01

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