首页 后端开发 php教程 php函数method_exists()与is_callable()的差别

php函数method_exists()与is_callable()的差别

Jun 13, 2016 pm 01:17 PM
callable exists is method true

php函数method_exists()与is_callable()的区别

php函数method_exists()与is_callable()的区别在哪?在php面相对象设计过程中,往往我们需要在调用某一个方法是否属于某一个类的时候做出判断,常用的方法有method_exists()和is_callable(),相比之下,is_callable()函数要高级一些,它接受字符串变量形式的方法名作为第一个参数,如果类方法存在并且可以调用,则返回true。如果要检测类中的方法是否能被调用,可以给函数传递一个数组而不是类的方法名作为参数。数组必须包含对象或类名,以将其作为它的第一个元素,要检查的方法名则作为第二个元素。如果该方法在类中存在,函数返回true。

?

代码示例:

?



  1. if?(?is_callable(?array(?$obj,?$method?)?)?) ??
  2. { ??
  3. ????/*要操作的代码段*/??
  4. }??

?

is_callable()可以加收另外一个参数:一个布尔值,如果将该参数设置为true,函数仅仅检查给定的方法或函数名称的语法是否正确,而不检查其是否真正存在。method_exists()函数的参数为一个对象(或类名)和一个方法名,如果给定方法在对象的类中存在,则返回true

代码示例:

?



  1. if?(?method_exists(?$obj,?$method?)?) ??
  2. { ??
  3. ????/*要操作的代码段*/??
  4. }??

?

php函数method_exists()与is_callable()的区别在于在php5中,一个方法存在并不意味着它就可以被调用。对于private,protected和public类型的方法,method_exits()会返回true,但是is_callable()会检查存在其是否可以访问,如果是private,protected类型的,它会返回false。

http://www.souebooks.com/14.htm

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1662
14
CakePHP 教程
1418
52
Laravel 教程
1311
25
PHP教程
1261
29
C# 教程
1234
24
PHP Fatal error: Call to a member function fetch()的解决方法 PHP Fatal error: Call to a member function fetch()的解决方法 Jun 23, 2023 am 09:36 AM

在使用PHP进行web应用开发时,很多时候会需要使用数据库。而在使用数据库时,错误提示是非常常见的事情。其中,PHPFatalerror:Calltoamemberfunctionfetch()是一种比较常见的错误,它会在使用PDO查询数据库时出现。那么,这个错误是怎么引起的,以及如何解决呢?本文将为大家详细阐述。一、错误产生原

Java中Synchronized的原理和使用场景以及Callable接口的使用方法及区别分析 Java中Synchronized的原理和使用场景以及Callable接口的使用方法及区别分析 Apr 21, 2023 am 08:04 AM

一、基本特点1.开始时是乐观锁,如果锁冲突频繁,就转换为悲观锁.2.开始是轻量级锁实现,如果锁被持有的时间较长,就转换成重量级锁.3.实现轻量级锁的时候大概率用到的自旋锁策略4.是一种不公平锁5.是一种可重入锁6.不是读写锁二、加锁工作过程JVM将synchronized锁分为无锁、偏向锁、轻量级锁、重量级锁状态。会根据情况,进行依次升级。偏向锁假设男主是一个锁,女主是一个线程.如果只有这一个线程来使用这个锁,那么男主女主即使不领证结婚(避免了高成本操作),也可以一直幸福的生活下去.但是女配出现

如何使用C#中的File.Exists函数判断文件是否存在 如何使用C#中的File.Exists函数判断文件是否存在 Nov 18, 2023 am 11:25 AM

如何使用C#中的File.Exists函数判断文件是否存在在C#的文件操作中,判断文件是否存在是一项基本的功能需求。File.Exists函数是C#中的一个用于判断文件是否存在的方法。本文将介绍如何使用C#中的File.Exists函数来判断文件是否存在,并提供具体的代码示例。引用命名空间在开始编写代码之前,首先需要引用System.IO命名空间,该命名空间

从入门到精通:掌握is与where选择器的使用技巧 从入门到精通:掌握is与where选择器的使用技巧 Sep 08, 2023 am 09:15 AM

从入门到精通:掌握is与where选择器的使用技巧引言:在进行数据处理和分析的过程中,选择器(selector)是一项非常重要的工具。通过选择器,我们可以按照特定的条件从数据集中提取所需的数据。本文将介绍is和where选择器的使用技巧,帮助读者快速掌握这两个选择器的强大功能。一、is选择器的使用is选择器是一种基本的选择器,它允许我们根据给定条件对数据集进

PHP函数中true的含义详解 PHP函数中true的含义详解 Mar 16, 2024 am 08:57 AM

PHP函数中true的含义详解在PHP中,true是一个布尔值,代表"真"或者"是"的状态。在函数中使用true通常用于表达一个条件成立或者返回一个成功的状态。本文将从不同的角度详细解释在PHP函数中true的含义,以及给出具体的代码示例说明。一、返回true的情况条件判断:在PHP函数中,true通常用于条件判断中,表示条件成立。例如:functioni

PHP函数中true代表什么意思? PHP函数中true代表什么意思? Mar 16, 2024 pm 12:12 PM

标题:PHP函数中true代表什么意思?在PHP编程中,true代表布尔值中的真,通常表示“真”的状态。在函数中使用true时,通常用于判断条件是否为真或执行某些操作。下面将通过具体的代码示例来说明在PHP函数中true代表什么意思。例子:

jQuery中POST请求方式的使用方法 jQuery中POST请求方式的使用方法 Feb 28, 2024 pm 09:03 PM

jQuery中POST请求方式的使用方法在Web开发中,经常会涉及到前端页面与后端服务器之间的数据交互。其中,POST请求是常用的一种方式,通过POST请求可以向后端服务器提交数据,并获取相应的返回结果。jQuery是一款流行的JavaScript库,提供了便捷的方法来进行AJAX请求,本文将介绍如何使用jQuery中的POST方法进行数据传输,并提供具体的

Java中的equals()与==的区别与用法 Java中的equals()与==的区别与用法 Mar 07, 2024 pm 03:28 PM

在Java开发中有有一个看似简单,但是在网上有大量关于话题和问题,就是equals()和==操作符有什么区别==:操作符用于比较两个对象的地址是否相等equals():方法用于比较两个对象的内容是否相等今日内容介绍,大约花费9分钟图片为了更好地理解这个区别,让我们看一个例子:Stringstr1=newString("Hello");Stringstr2=newString("Hello");System.out.println(str1.equals(str2));//输出trueSystem

See all articles