首页 > 技术文章 > PHP对类和对象的逻辑判断和操作

ylei11 2017-03-27 14:45 原文

1.检测类是否存在

  函数:class_exist();    1.可以使用isset(),直接检测

、 2.if(class_exist('MyClass')){

      $myclass = new MyClass();

}

2.获取脚本进程中定义的所有类的数组

  

函数: get_declared_classes()

它会列出用户自己定义的类以及PHP内置的类. 注意:它只返回在函数调用时已经声明的类.

3:通过实例对象获取类名

函数: get_class($classname)

通过将对象的实例作为参数传递进去,返回对象的类名.

4:检测对象是否属于某类

关键字: instanceof

(PHP4不支持instanceof关键字,而是提供了is_a()函数,但是这个函数在PHP5.0的时候就不使用了,从PHP5.3开始,又重新使用is_a())

instanceof 有两个操作数,要检测的对象在关键字左边,类或者接口名在右边.如果左侧的对象属于右侧类型的实例,则返回true,反之返回false

if(对象实例 instanceof 类或接口){

}

5:获取类中的所有方法

函数: get_class_methods(‘Person’)

参数为字符串的类名,需要注意的是,在获取类中方法的时候,只能获取类中公共方法,对private,protected类型的方法都无法获取的到.

6:检测方法是否存在于类中

函数: is_callable(),method_exists()

is_callable():  接受字符串变量形式的方法名作为第一个参数,如果类方法存在且可以被调用,则返回true.如果要检测类中的方法能不能被调用,可以给这个函数传递一个数 组,而不是类方法名作为参数.数组必须包含对象或者类名,以将其作为第一个元素,要检测的方法名则作为第二个元素,如果该方法在类中存在,函数则会返回 true.

method_exists(): 相比而言,这个函数就简单多了,这个方法需要传递两个参数,第一个参数对对象名,第二个参数为方法名,如果给定的方法在类中存在则返回true.

7: 了解类中的属性.

函数: get_class_vars(‘class’)

就想查询类的方法一样,我们也可以查看类有哪些属性.(只能查看public的属性,如果属性为private或者protected将无法查看).该函数的参数为一个字符串的类名.

8:通过子类名获取父类的名字

函数:get_parent_class()

这个函数需要一个对象或者类名作为参数,如果这个类或者对象存在父类的话,则把父类的名字返回.如果不存在则返回false

9:检测一个类是否是另一个类的子类

函数: is_subclass_of()

这个函数需要接受两个参数,第一个参数为子类的对象,第二个参数为父类的名字.如果第二个参数是第一个参数的父类的话,则返回true.

推荐阅读