有时候我们需要对类进行除了实例化外的一些操作,比如检查类是否存在,看看类有哪些字段、方法等。PHP自带了很多函数可以用来帮助开发人员管理和使用类库。本节主要介绍这些函数。
- 确定类是否存在
- 确定对象上下文
- 了解类方法
- 了解类字段
- 了解声明类
- 了解对象字段
- 确定对象的父类
- 确定接口是否存在
- 确定对象类型
- 确定对象的子类类型
- 确定方法是否存在
当前执行脚本上下文中如果存在class_name指定的类,则class_exists()函数返回true;否则返回false。其形式如下:
1 | boolean class_exists(string class_name) |
get_class()函数返回object所属类的类名,如果object不是对象则返回false。其形式为:
1 | string get_class(object object) |
get_class_methods()函数返回一个数组,其中包含class_name类中定义的所有方法名。其形式为:
1 | array get_class_mothods(mixed class_name) |
get_class_vars()函数返回一个关联数组,其中包含class_name类中定义的所有字段名及其相应的值。其形式为:
1 | array get_class_vars(string class_name) |
函数get_declared_classes()返回一个数组,其中包含当前执行脚本中定义的所有类名。根据PHP发行包的配置不同,这个函数的输出会有所区别。例如,在测试服务器上执行get_declared_classes()将得到包含97个类的列表。其形式为:
1 | array get_declared_classes(void) |
get_object_vars()函数返回一个关联数组,其中包含object可用的已定义字段以其相应的值。没有值得字段在关联数组中将赋值为NULL。其形式为:
1 | array get_object_vars(object object) |
get_parent_class()函数返回object所属类的父类名。如果object类是基类,那么就返回该类的名称。其形式为:
1 | string get_parent_class(mixed object) |
interface_exists()函数确定一个接口是否存在,如果存在则返回true,否则返回false。其形式为:
1 | boolean interface_exists(string interface_name[,boolean autoload]) |
object属于class_name类时,或者属于class_name的一个子类时,is_a()函数返回true。如果object与class_name类型无关,则返回false。其形式为:
1 | boolean is_a(object object,string class_name) |
object属于继承自class_name的类时,is_subclass_of()函数返回true,否则返回false。其形式为:
1 | boolean is_subclass_of(object object,string class_name) |
object中有名为method_name的方法,method_exists()函数返回true,否则返回false。其形式为:
1 | boolean method_exists(object object,string method_name) |