php判断函数,类,类方法是否存在

栏目: 编程语言 发布于: 2014-04-24 21:30:01

做php开发中,如果遇到自己不能修改服务器的相关配置也不能知道服务器某些功能是否开启的情况下,直接使用某些特殊的函数会导致程序报错,比如curl_init这种系统函数。当服务器未开启curl相关服务的时候,直接使用curl系列函数会报Call to undefined function curl_init()......这样的错误。

那么对于出现这种情况该如何办呢?很多事情不只是有一种办法的,如果某些方法不行,我们还可以使用另外的方法。这里我们就需要涉及到判断某个方法是否存在的问题了,如果存在该方法则使用该方法,如果不存在该方法则使用另外的方法。

这里对于如何判断一个函数,类以及类中的方法是否存在做了一个整理:

(1)php判断系统函数或自己写的函数是否存在

bool function_exists ( string $function_name ) 判断函数是否已经定义,例如:

if(function_exists('curl_init')){
	curl_init();
}else{
	echo 'not function curl_init';
}

(2)php判断类是否存在

bool class_exists ( string $class_name [, bool $autoload = true ] ) 检查一个类是否已经定义,一定以返回true,否则返回false,例如:

if(class_exists('MySQL')){
    $myclass=new MySQL();
}

(3)php判断类里面的某个方法是否已经定义

bool method_exists ( mixed $object , string $method_name ) 检查类的方法是否存在,例如:

$directory=new Directory;
if(!method_exists($directory,'read')){
	echo '未定义read方法!';
}
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。
转载请注明:文章转载自 [http://www.php230.com]
本文标题:php判断函数,类,类方法是否存在
IT技术书籍推荐:
数据库技术丛书·MySQL技术内幕:InnoDB存储引擎(第2版)
数据库技术丛书·MySQL技术内幕:InnoDB存储引擎(第2版)
姜承尧 (David Jiang) (作者)
《MySQL技术内幕:InnoDB存储引擎(第2版)》由国内资深MySQL专家亲自执笔,国内外多位数据库专家联袂推荐。作为国内唯一一本关于InnoDB的专著,《MySQL技术内幕:InnoDB存储引擎(第2版)》的第1版广受好评,第2版不仅针对最新的MySQL 5.6对相关内容进行了全面的补充,还根据广大读者的反馈意见对第1版中存在的不足进行了完善,《MySQL技术内幕:InnoDB存储引擎(第2版)》大约重写了50%的内容。《MySQL技术内幕:InnoDB存储引擎(第2版)》从源代码的角度深度解析了InnoDB的体系结构、实现原理、工作机制,并给出了大量最佳实践,能帮助你系统而深入地掌握InnoDB,更重要的是,它能为你设计管理高性能、高可用的数据库系统提供绝佳的指导。 《MySQL技术内幕:InnoDB存储引擎(第2版)》一共10章,首先宏观地介绍了MySQL的体系结构和各种常见的存储引擎以及它们之间的比较;接着以InnoDB的内部实现为切入点,逐一详细讲解了InnoDB存储引擎内部的各个功能模块的实现原理,包括InnoDB存储引擎的体系结构、内存中的数据结构、基于InnoDB存储引擎的表和页的物理存储、索引与算法、文件、锁、事务、备份与恢复,以及InnoDB的性能调优等重要的知识;最后对InnoDB存储引擎源代码的编译和调试做了介绍,对大家阅读和理解InnoDB的源代码有重要的指导意义。 《MySQL技术内幕:InnoDB存储引擎(第2版)》适合所有希望构建和管理高性能、高可用性的MySQL数据库系统的开发者和DBA阅读。
最新互联网资讯