Maison >développement back-end >Problème PHP >Comment utiliser la méthode d'appel php

Comment utiliser la méthode d'appel php

藏色散人
藏色散人original
2020-08-08 10:34:343690parcourir

La méthode d'appel php fait référence à la méthode magique "__call()", qui est appelée lorsqu'une méthode inaccessible est appelée dans l'objet. Le format de la méthode d'appel est "function __call(string $function_name,array. $arguments){Corps de la méthode}".

Comment utiliser la méthode d'appel php

Recommandé : "Tutoriel vidéo PHP"

__call(), lors de l'appel d'une méthode inaccessible dans un appel d'objet .

Cette méthode a deux paramètres. Le premier paramètre $function_name recevra automatiquement le nom de la méthode non existante, et le second $arguments recevra plusieurs paramètres de la méthode non existante sous la forme d'un tableau.

1. Le format de la méthode __call() :

function __call(string $function_name, array $arguments){    // 方法体}

2. La fonction de la méthode __call() :

Afin d'éviter les erreurs lors de l'appel de la méthode. n'existe pas, la fin accidentelle du programme peut être évitée en utilisant la méthode __call().

Cette méthode sera automatiquement appelée lorsque la méthode appelée n'existe pas, et le programme continuera à s'exécuter.

Veuillez vous référer au code suivant :

<?phpclass Person{                             
    function say()    {  
                              
           echo "Hello, world!<br>"; 
    }      
        
    /**
     * 声明此方法用来处理调用对象中不存在的方法
     */    function __call($funName, $arguments)    
     { 
          echo "你所调用的函数:" . $funName . "(参数:" ;  
          // 输出调用不存在的方法名
          print_r($arguments); 
          // 输出调用不存在的方法时的参数列表          
          echo ")不存在!<br>\n"; 
          // 结束换行                      
    }                                          
}
$Person = new Person();            
$Person->run("teacher"); // 调用对象中不存在的方法,则自动调用了对象中的__call()方法$Person->eat("小明", "苹果");             
$Person->say();

Résultat de l'exécution :

你所调用的函数:run(参数:Array ( [0] => teacher ) )不存在!
你所调用的函数:eat(参数:Array ( [0] => 小明 [1] => 苹果 ) )不存在!
Hello, world!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn