Position actuelle: Accueil> Derniers articles> Explication détaillée de la méthode de l'appel dynamique PHP: Call_user_method () Fonction et solutions alternatives

Explication détaillée de la méthode de l'appel dynamique PHP: Call_user_method () Fonction et solutions alternatives

gitbox 2025-06-15

Comprendre la fonction call_user_method ()

Dans PHP, la fonction call_user_method () est utilisée pour appeler dynamiquement les méthodes des objets. Habituellement, nous appelons des méthodes directement via des objets, par exemple:

 $obj->method();

Cependant, dans certains scénarios, les méthodes doivent être appelées dynamiquement basées sur des variables, et cette fois, vous pouvez utiliser call_user_method () pour l'implémenter.

Utilisez la fonction call_user_method ()

grammaire

call_user_method (String $ method_name, objet $ obj, paramètre $ mixte [, mixte $ ...]): mixte

Description du paramètre:

  • Method_name : le nom de la méthode à appeler, type de chaîne
  • OBJ : l'objet qui appelle cette méthode
  • Paramètre : le paramètre transmis à la méthode
  • ...: plusieurs paramètres peuvent être transmis à leur tour des méthodes

Exemple

 
class MyClass {
    public function myMethod($arg1, $arg2) {
        echo "arg1=$arg1, arg2=$arg2";
    }
}
$obj = new MyClass();
call_user_method('myMethod', $obj, 'value1', 'value2'); // arg1=value1, arg2=value2

Dans le code ci-dessus, nous définissons la classe MyClass et sa méthode MyMethod, appelons dynamiquement la méthode via call_user_method et passez en deux paramètres, et étend enfin le résultat correspondant.

Choses à noter

  • La fonction call_user_method () a été supprimée dans la version PHP7, et il est recommandé d'utiliser d'autres méthodes d'appel dynamique.
  • La méthode appelée doit exister dans l'objet cible, sinon elle provoquera une erreur.
  • Vous pouvez plutôt utiliser la fonction call_user_func (), qui prend en charge les méthodes d'objet d'appel sous forme de tableau, et la syntaxe est plus flexible.

call_user_func () Exemple alternatif

 
class MyClass {
    public function myMethod($arg1, $arg2) {
        echo "arg1=$arg1, arg2=$arg2";
    }
}
$obj = new MyClass();
call_user_func([$obj, 'myMethod'], 'value1', 'value2'); // arg1=value1, arg2=value2

Ici, call_user_func () est utilisé pour transmettre des noms d'objet et de méthode dans le formulaire de tableau. La fonction est équivalente à call_user_method () et est compatible avec PHP7 et supérieur.

Résumer

Cet article présente l'utilisation de Call_user_method () dans PHP et son concept de base de méthodes d'appel dynamique. Étant donné que cette fonction a été obsolète après PHP7, il est conseillé aux développeurs d'utiliser des alternatives modernes telles que call_user_func () pour garantir la compatibilité du code et la maintenabilité.