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 :

public static function = public function


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Avatar de Jcpan
    Inscrit en
    Août 2008
    Messages
    542
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 542
    Points : 475
    Points
    475
    Par défaut public static function = public function
    Bonjour


    public function(par defaut) = public static function
    est ce correct ??



    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 69
    Points : 85
    Points
    85
    Par défaut
    Si tu espères une réponse sois un peu plus précis. Quel language, quel contexte...

  3. #3
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 185
    Points : 225
    Points
    225
    Par défaut
    Bonjour,

    Je ne comprends pas bien la question, mais si c'est ce que je pense, non, public static function et public function ce n'est pas la même chose.

    public function = définition d'une fonction sur une instance d'un objet, qui aura accès à $this, et aux valeurs des variables d'instance, ET aux variables statiques.
    public static function = définition d'une fonction sur une classe, qui n'aura pas accès à $this, ni aux valeurs des variables d'instance, mais qui aura toujours accès aux variables statiques.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    class A{
      public $var = 'a';
      public static $static = 'b';
      public function ecrire() {
        echo $this -> var;
        echo self :: $static;
      }
      public static function ecriture( ){
        echo self :: $static;
        //ici, $this -> var provoquerais une erreur ( using $this when not in object context )
      }
    }
    $a = new A( );
    A :: ecriture( ); //appel à une fonction statique
    $a -> ecrire( ); //appel à une fonction non statique

  4. #4
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Bonjour,

    une méthode (fonction) statique peut être utilisé sans instancié un objet en plus tout pour tous les objets de la classe il y a qu'une copie de la méthode en mémoire.

    Exemple :

    tu as une classe Parent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class Parent{
     public function test(){
      //...
     }
     public static function test2(){
      //...
     }
    }
    tu peux directement exécuté la méthode statique sans créer un objet
    tandis que le code suivant générerai une erreur
    Pour exécuter la méthode non statique faudrait passer par instancier un objet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $objet = new Parent();
    $objet->test();

  5. #5
    Inactif  
    Inscrit en
    Novembre 2008
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 255
    Points : 264
    Points
    264
    Par défaut
    Citation Envoyé par thes32 Voir le message
    Bonjour,

    une méthode (fonction) statique peut être utilisé sans instancié un objet en plus tout pour tous les objets de la classe il y a qu'une copie de la méthode en mémoire.

    Exemple :

    tu as une classe Parent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class Parent{
     public function test(){
      //...
     }
     public static function test2(){
      //...
     }
    }
    tu peux directement exécuté la méthode statique sans créer un objet
    [/CODE]

    juste une petite correction si je me rappelle bien

    1-on ne peut appeler une classe "Parent" (mot réservé).
    2-on appelle la méthode statique ainsi

    a+

Discussions similaires

  1. Methode public static void main (String [] args)
    Par jeremypd dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 09/01/2017, 10h53
  2. Modifier une public static var (var globale)
    Par pigeonus dans le forum ActionScript 3
    Réponses: 32
    Dernier message: 11/03/2010, 19h44
  3. Protection d'un tableau public static final
    Par sachem dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 07/02/2009, 21h20
  4. Différence entre public static
    Par moooona dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 24/05/2008, 15h23
  5. public static []tableau (double []tableau) ?
    Par rXpCH dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 29/02/2008, 08h34

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