__call('test', array(1, "2", 3.4, true))", qui est équivalente à "$foo- >test(1, "2", 3.4, vrai)"."/> __call('test', array(1, "2", 3.4, true))", qui est équivalente à "$foo- >test(1, "2", 3.4, vrai)".">

Maison  >  Article  >  développement back-end  >  Comment utiliser la méthode php __call

Comment utiliser la méthode php __call

藏色散人
藏色散人original
2020-08-28 09:57:482503parcourir

La méthode php __call est appelée lors de l'appel d'une méthode non définie, en utilisant une syntaxe telle que "$foo->__call('test', array(1, "2", 3.4, true))", également est équivalent à "$foo->test(1, "2", 3.4, true)".

Comment utiliser la méthode php __call

Recommandé : "Tutoriel vidéo PHP"

Utilisation de la méthode magique php __call

__call est appelé lors de l'appel d'une méthode non définie.

En d'autres termes, votre méthode de test n'est pas définie, alors le nom de la méthode test sera transmis comme premier paramètre de __call, et les paramètres de test seront chargés dans le tableau comme premier paramètre de __call Deux paramètres sont transmis.

Donc, lorsque vous appelez $foo->test(1, "2", 3.4, true), cela équivaut en fait à appeler $foo->__call('test', array(1, " 2", 3.4, vrai)).

La méthode __call est déclenchée lors de l'appel d'une méthode de classe, telle que :

<?php
class google{
    public function search(){
        //TODO
    }
    public function __call($method, $parameters){
        //这里的method便是对应的方法,即"->"后面的字符串,$parameters是通过这个方法传过来的参数
    }
}
 
$google = new google();
$keyword = &#39;VR&#39;;
$google->search($keyword);
//当调用当前对象不存在的方法时,会转向__call
$google->operate();

En utilisant __call, vous pouvez effectuer une encapsulation pour appeler d'autres objets et méthodes.

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