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 :

appeler une fonction dans une classe


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 42
    Par défaut appeler une fonction dans une classe
    Bonjour à tous,

    J'ai une classe qui contient deux méthodes et ma méthode 2 doit faire appel à la méthode 1 pour fonctionner. Le problème est que quand je l'appelle, on me dit que la fonction n'existe pas.
    Je suppose qu'il faut faire quelque chose de spécial pour appeler une fonction interne à la classe mais je ne trouve pas.

    Merci de votre aide.

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Par défaut
    fé afficher ton code

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 42
    Par défaut
    en gros ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class calculs{
         function methode1() {
               ...
         }
     
         function methode2() {
                ...        
                $variable = methode1()
         }  
    }
    On s'en fout de ce qu'il y a dans les méthodes ...

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class calculs{
         public function methode1() {
               ...
         }
     
         public function methode2() {
                ...        
                $variable = methode1()
         }  
    }

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 42
    Par défaut
    Merci, mais le fait de rajouter un public ne change rien, il ne reconnaît toujours pas ma fonction.

  6. #6
    Membre expérimenté

    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
    Par défaut
    public (visibilité par défaut) ou private, ça ne change strictement rien dans le contexte donné.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $variable = $this->methode1();
    On appelle une méthode d'instance à partir d'un objet (pléonasme ?). Ici, l'objet courant, désigné par $this et ça doit être explicité en PHP (sinon il cherchera une fonction, ce qui est totalement différent).

  7. #7
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Une fonction c'est une chose, une méthode de classe c'en est une autre.
    Donc pour appeler une méthode de classe dans la classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $truc = $this->UneMethode();
    Essai de provoquer volontairement ces 2 erreurs, tu verras que Php retournera un message d'erreur différent selon le cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    class UneClasse {
        public function uneMethode() {
            echo fonctionExistePas();
            echo $this->methodeExistePas();
        }
    }

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 42
    Par défaut
    Ok merci, ça marche nickel. J'avais pensé au this mais j'avais oublié de mettre le $ devant.

    A +

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

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 11h18
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 20h05
  3. Appel d'une fonction dans une fonction (sql server 2005)
    Par catchouse dans le forum Développement
    Réponses: 10
    Dernier message: 06/05/2009, 13h03
  4. Response.Redirect dans une fonction dans une classe
    Par jpower dans le forum ASP.NET
    Réponses: 14
    Dernier message: 24/08/2007, 10h45
  5. Appeler une fonction dans une fonction
    Par bryanstaubin dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/06/2007, 10h39

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