Maison  >  Article  >  php教程  >  Analysez la différence entre la fonction php method_exists() et is_callable()

Analysez la différence entre la fonction php method_exists() et is_callable()

高洛峰
高洛峰original
2016-12-22 15:42:241090parcourir

Quelle est la différence entre la fonction PHP method_exists() et is_callable() ? Dans le processus de conception orienté objet PHP, nous devons souvent juger lors de l'appel d'une méthode si elle appartient à une certaine classe. Les méthodes couramment utilisées incluent method_exists() et is_callable(). En comparaison, la fonction is_callable() est plus. Advanced. Certains, qui acceptent le nom de la méthode sous la forme d'une variable chaîne comme premier argument, renvoient true si la méthode de classe existe et peut être appelée. Si vous souhaitez vérifier si une méthode d'une classe peut être appelée, vous pouvez transmettre un tableau à la fonction en tant que paramètre au lieu du nom de méthode de la classe. Le tableau doit contenir le nom de l'objet ou de la classe comme premier élément et le nom de la méthode à vérifier comme deuxième élément. Si la méthode existe dans la classe, la fonction renvoie vrai.
Exemple de code :

if ( is_callable( array( $obj, $method ) ) ) 
{ 
/*要操作的代码段*/
}

is_callable() peut ajouter un autre paramètre : une valeur booléenne. Si ce paramètre est défini sur true, la fonction vérifie uniquement si la syntaxe de la méthode ou du nom de fonction donné est. corriger sans vérifier s’il existe réellement. Les paramètres de la fonction method_exists() sont un objet (ou un nom de classe) et un nom de méthode si la méthode donnée existe dans la classe de l'objet, elle renvoie true
Exemple de code :

if ( method_exists( $obj, $method ) ) 
{ 
/*要操作的代码段*/
}

php. function La différence entre method_exists() et is_callable() est qu'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 si elle existe et est accessible. S'il est de type privé et protégé, elle renverra false.


Pour plus d'articles sur la différence entre les fonctions PHP method_exists() et is_callable(), veuillez faire attention au site Web PHP 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