Maison  >  Article  >  développement back-end  >  Note 013 La différence entre la fonction de is_callable() et method_exists() en PHP

Note 013 La différence entre la fonction de is_callable() et method_exists() en PHP

黄舟
黄舟original
2016-12-26 10:03:151998parcourir

Le rôle de is_callable()

Je suis récemment entré en contact avec la méthode is_callable() Dans le passé, j'ai utilisé la méthode method_exissts() pour effectuer le traitement logique associé. En contact avec la méthode is_callable() aujourd'hui, j'ai découvert que les deux sont similaires. La structure syntaxique de la méthode

is_callable() est :

bool is_callable ( callable $name [, bool $syntax_only = false [, string &$callable_name ]] )

Fonction Il s'agit de vérifier si le contenu de la variable peut être appelé en fonction. Le nom du paramètre 1 est le nom de la fonction de rappel qui doit être vérifiée. S'il s'agit d'une méthode objet, cela nécessite un tableau comme paramètre 1. Le paramètre à ce moment doit avoir la structure suivante :

array ( instance de classe, nom de la méthode)

Le paramètre 2 syntax_only est une valeur booléenne. Si elle est définie sur true, cette fonction vérifie uniquement si le nom est la syntaxe d'une fonction ou d'une méthode, et ne détecte pas réellement si la fonction existe.

Le paramètre 3 callable_name est utilisé pour recevoir le "callable name". Les fonctions ordinaires renverront le nom de la fonction et les méthodes de la classe renverront des chaînes sous la forme : someClass::someMethod.

La différence entre is_callable() et method_exists()

method_exists() Les paramètres de la fonction sont un objet (ou un nom de classe) et un nom de méthode, si la méthode donnée existe dans le la classe de l'objet, puis renvoie true.

La différence entre les deux est :

En php5, l'existence d'une méthode ne signifie pas qu'elle peut être appelée. Pour les méthodes de types privés, protégés et publics, method_exits() renverra true, mais is_callable() vérifiera son existence et si elle est accessible. S'il est de type privé et protégé, elle renverra false.

Ce qui précède est la différence entre Note 013 is_callable() et method_exists() en PHP Pour plus de contenu connexe, veuillez faire attention au site Web chinois de PHP (www.php.cn) !


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