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 :

Parse error en faisant $className::$methodeName()


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 10
    Par défaut Parse error en faisant $className::$methodeName()
    Bonjour,

    Dans une fonction je recois en paramètre un nom de classe et de méthode que je dois appeler.

    Vooci le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public function smarty_function_module($params,&$smarty)
    {
            $module = $params["name"]."_IndexController";
            $methode = $params["method"]."Action";
            return $module::$methode();
    }
    Et voici l'erreur retournée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in...
    Tout marche si je remplace la dernière ligne par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    return Article_IndexController::$methode();
    Mais je ne connais pas le nom de ma classe à l'avance puisqu'elle m'est passée en paramètre.

    Quelqu'un aurait il une solution pour garder ce fonctionnement mais écrire un code qui serait accepter par PHP.

    Merci à l'avance pour vos réponses.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 71
    Par défaut
    Hello!

    En fait faut utiliser call_user_func
    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
    <?php
     
    class myclass {
        static function say_hello()
        {
            echo "Hello!\n";
        }
    }
     
    $classname = "myclass";
     
    call_user_func(array($classname, 'say_hello'));
    call_user_func($classname .'::say_hello'); // Depuis 5.2.3
     
    $myobject = new myclass();
     
    call_user_func(array($myobject, 'say_hello'));
     
    ?>
    !!!

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 10
    Par défaut
    Citation Envoyé par lunarnet76 Voir le message
    Hello!

    En fait faut utiliser call_user_func
    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
    <?php
     
    class myclass {
        static function say_hello()
        {
            echo "Hello!\n";
        }
    }
     
    $classname = "myclass";
     
    call_user_func(array($classname, 'say_hello'));
    call_user_func($classname .'::say_hello'); // Depuis 5.2.3
     
    $myobject = new myclass();
     
    call_user_func(array($myobject, 'say_hello'));
     
    ?>
    !!!

    Super !!!

    Merci beaucoup pour la réponse.

    Maintenant je vais regarder avec la fonction: call_user_func_array
    Comment je vais pouvoir uniformiser le passage de paramètres. (Surement en envoyant un tableau clé valeur)

    A+

Discussions similaires

  1. Parse Error...
    Par Anduriel dans le forum Langage
    Réponses: 5
    Dernier message: 09/10/2005, 02h23
  2. parse error
    Par Romain93 dans le forum C
    Réponses: 6
    Dernier message: 28/09/2005, 21h03
  3. je ne comprend pas un parse error
    Par bibi_64 dans le forum C
    Réponses: 3
    Dernier message: 21/09/2005, 14h00
  4. XML Parsing Error: not well-formed
    Par localhost dans le forum Valider
    Réponses: 5
    Dernier message: 16/06/2005, 14h20
  5. Parse error
    Par Sylvain James dans le forum XMLRAD
    Réponses: 2
    Dernier message: 02/02/2005, 10h55

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