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] Appeler une fonction par son nom dans une variable [Fait]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 360
    Par défaut [POO] Appeler une fonction par son nom dans une variable
    Hello,

    J'ai une fonction définie par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public function getTabID()
    {
    }
    Ce que je souhaiterai serait d'avoir un tableau de fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tabfct = array(0=>'getTabId')
    Par la suite je voudrais appeler ma fonction par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $fonction = $tabfct[0];
    $fonction();
    Comment faire pour avoir un truc similaire ? (si c'est possible)

    Merci de votre aide.

  2. #2
    Membre expérimenté Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Par défaut
    A ma connaissance cela n'est pas possible.

    Quand tu appelles ton tableau tu appelles des chaines ou des entiers ou des booléens,etc... mais tu n'appelles pas de fonction.

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Bonjour,

    Un truc comme ça ?
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <?php  
     
    function classic()
    {
    	return 'The style is classic ';
    	}
     
    function baroque()
    {
        return 'The style is baroque ';
    	}
     
    function romantic()
    {
       return 'The style is romantic ';
       }
     
    $styles = array('classic','baroque','romantic');
     
    foreach($styles as $style)
    {
       $stylefunction = $style;
       echo $stylefunction().'<br />';
       }
    ?>

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 360
    Par défaut
    Merci infiniment !!!! Là tu me sauve la vie, je ne trouvais pas les mots clés appropriés sur google : tu tappes "tableau+fonction", c'est mort !!!

    Merci encore, j'ajoute ce post dans mes favoris!!!

    Je cloture ce post mais j'ai une question hors sujet : que signifie cette écriture :
    Je rencontre souvent ce code mais je vois pas ce que ça signifie.

    Au cas ou qq repasse par ici, en attendant merci.

  5. #5
    Membre expérimenté Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Par défaut
    A jcroyais pas sa possible jcrois que sa pourrais bien mservir également^^

    Merci Tsilefy

  6. #6
    Membre chevronné Avatar de sacricri
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Par défaut
    Citation Envoyé par whitespirit Voir le message
    Je rencontre souvent ce code mais je vois pas ce que ça signifie.


    C'est de l'objet en fait

    Tu crées une classe dans laquelle tu peux ajouter plusieurs fonctions et/ou variables fonctions de fonctions et du coup, pour les utiliser, on fait d'abord un '$maClass = new maClass()'

    et ensuite on peut récupérer tout ce qui est à l'intérieur :
    '$maClass->$variable' va récupérer la variable '$variable' située dans la classe 'maClass'
    de même, si tu as une fonction 'mafonction' située dans 'maClass', tu l'appelles comme ceci :
    $maClass->mafonction();

  7. #7
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 360
    Par défaut
    Oui mais si je fais
    je récupère la variable définit comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class maClass{ private $mavariable;}
    Et si je fais , étant donné que j'ai le $ devant mavariable, je récupère quoi ?

    C'est le fait d'avoir 2 $ qui me gènes...

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 06/03/2015, 00h14
  2. [XL-2007] comment trouver une colonne dans une BD par son nom via VBA
    Par chikitin dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/06/2010, 08h52
  3. executer une fonction par son nom en string
    Par milach dans le forum C++
    Réponses: 7
    Dernier message: 11/01/2010, 17h15
  4. [PHP 5.0] instancier une classe avec son nom dans une variable
    Par Nnay_ dans le forum Langage
    Réponses: 1
    Dernier message: 12/02/2009, 12h49
  5. Récupérer objet par son nom dans une chaîne
    Par peijnoob dans le forum C#
    Réponses: 7
    Dernier message: 14/02/2008, 16h47

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