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 :

Utilisation de la fonction is_callable()


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de eexit
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 61
    Par défaut Utilisation de la fonction is_callable()
    Bonsoir,

    Je souhaiterais utiliser la fonction is_callable() pour éxecuter des méthodes dans ma classe.
    Je m'explique : j'ai une variable dans ma méthode dans laquelle je balance le nom d'une autre méthode pour l'utiliser ensuite mais je n'arrive pas à obtenir de réslultat en utilisant la function is_callable().

    Exemple :

    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
    <?php
    class Test {
    	public $input = null;
     
    	function proc() {
    		$bar = 'floor';
    		if (is_callable($bar, false, $process)) {
    			$this->process();
    		}
    	}
     
    	function floor() {
    		return floor($this->input);
    	}
    }
     
    $foo = new Test;
    $foo->input = 2.37656;
    echo $foo->proc(); //Fatal error: Call to undefined method Test::process() in /../test.php on line 8
    ?>
    Quelle est la solution?

    Je vous remercie beaucoup.

  2. #2
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    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
     
    <?php
    class Test {
    	public $input = null;
     
    	function proc() {
    		$bar = 'floor';
    		if (is_callable(array($this, $bar))) {
    			call_user_func(array($this, $bar));
    		}
    	}
     
    	function floor() {
    		return floor($this->input);
    	}
    }

  3. #3
    Membre averti Avatar de eexit
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 61
    Par défaut
    Woa, super pour la réponse rapide

    Merci beaucoup, ça fonctionne mais seulement quand la méthode appelée contient une sortie écran.

  4. #4
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    Juste à rajouter un return devant call_user_fun() qui va retourner le résultat retourné par la méthode.

    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
     
    <?php
    class Test {
    	public $input = null;
     
    	function proc() {
    		$bar = 'floor';
    		if (is_callable(array($this, $bar))) {
    			return call_user_func(array($this, $bar));
    		}
    	}
     
    	function floor() {
    		return floor($this->input);
    	}
    }

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

Discussions similaires

  1. [LG]Utilisation de la fonction time
    Par kmitz dans le forum Langage
    Réponses: 4
    Dernier message: 08/04/2005, 13h05
  2. Utilisation de la fonction de déploiement
    Par mchicoix dans le forum XMLRAD
    Réponses: 4
    Dernier message: 01/03/2005, 14h35
  3. [LG]Utilisation de la fonction Random
    Par chloe95 dans le forum Langage
    Réponses: 1
    Dernier message: 01/03/2005, 14h20
  4. Utilisation de la fonction qsort
    Par Jsmeline dans le forum C
    Réponses: 8
    Dernier message: 28/01/2005, 12h40
  5. [LG]librairies : utiliser seulement quelques fonctions
    Par wwwroom dans le forum Langage
    Réponses: 13
    Dernier message: 14/05/2004, 22h50

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