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 :

Composer un appel de méthode avec des variables


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2010
    Messages : 25
    Points : 34
    Points
    34
    Par défaut Composer un appel de méthode avec des variables
    Bonjor, je cherche à faire quelque chose qu je n'ai vu nulle part en PHP. Il s'agit de composer un appel de fonction avec une variable, j'ai essayé ça, sans succès:

    set."$variable".() => Si $variable contient Toto par exemple, j'espérais que ça m'appelle la méthode setToto().

    Connaissez vous une autre façon de faire cela?

    Merci!

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 420
    Points : 1 470
    Points
    1 470
    Par défaut
    Avec eval() c'est peut-être faisable non ?

    Mais attention dans ce cas à bien vérifier l'intégrité de $variable en tout cas.

    Par contre, n'ayant jamais eu à me poser cette question, je serais bien curieux de comprendre dans quel contexte vous avez besoin de faire cela.

    Cordialement.

  3. #3
    Expert éminent sénior

    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
    Points : 17 777
    Points
    17 777
    Par défaut
    C'est possible, il faut juste décomposer l'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function getfoo() {
        echo __FUNCTION__;
    }
     
    $offset = 'Foo'; # (nom des fonctions insensible à la casse)
    $x = 'get' . $offset;
    $x();
    A priori, c'est moins problématique en POO (construction via accolades - ex : $this->{'get' . $offset}()).

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2010
    Messages : 25
    Points : 34
    Points
    34
    Par défaut
    tontonnux: J'ai testé avec eval() mais j'avais une parse error que je n'arrivais pas à résoudre... Merci quand même!

    julp: Ça marche parfaitement bien. Merci!

  5. #5
    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
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Il y a également la fonction call_user_func(), valable aussi bien pour une fonction que pour une classe.

    Un exemple :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    function ma_fonction() {
    	echo 'toto';
    }
     
    class MaClasse {
    	public function toto() {
    		echo 'toto';
    	}
    }
     
    call_user_func('ma_fonction'); // Affiche : toto
     
    $class = 'MaClasse';
    call_user_func(array($class, 'toto')); // Affiche : toto

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/05/2011, 09h14
  2. Méthode GET > Récupération avec des variables dynamiques
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 30/03/2007, 15h28
  3. appeler un movie clip avec des variables
    Par Alex35 dans le forum Flash
    Réponses: 3
    Dernier message: 04/12/2006, 13h14
  4. paramétrer ADOConnection avec des variables
    Par ouckileou dans le forum Bases de données
    Réponses: 3
    Dernier message: 23/04/2004, 08h11
  5. UPDATE avec des variables Delphi ...
    Par Kokito dans le forum Bases de données
    Réponses: 3
    Dernier message: 08/03/2004, 22h35

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