class_exists — 检查类是否已定义
格式: bool class_exists ( string $class_name [, bool $autoload ] )
如果由 class_name 所指的类已经定义,此函数返回 TRUE,否则返回 FALSE。
默认将会尝试调用 __autoload,如果不想让 class_exists() 调用 __autoload,可以将 autoload 参数设为 FALSE。
get_class_methods — 返回由类的方法名组成的数组
格式:array get_class_methods ( mixed $class_name )
返回由 class_name 指定的类中定义的方法名所组成的数组。如果出错,则返回 NULL。
从 PHP 4.0.6 开始,可以指定对象本身来代替 class_name
get_class — 返回对象的类名
格式: string get_class ([ object $obj ] )
返回对象实例 obj 所属类的名字。如果 obj 不是一个对象则返回 FALSE
get_object_vars — 返回由对象属性组成的关联数组
格式:array get_object_vars ( object $obj )
返回由 obj 指定的对象中定义的属性组成的关联数组。
get_parent_class — 返回对象或类的父类名
格式:string get_parent_class ([ mixed $obj ] )
如果 obj 是对象,则返回对象实例 obj 所属类的父类名。
is_a — 如果对象属于该类或该类是此对象的父类则返回 TRUE
格式:bool is_a ( object $object , string $class_name )
我们可以使用运算符: instanceof代替上面的is_a操作
method_exists — 检查类的方法是否存在
格式:bool method_exists ( object $object , string $method_name )
如果 method_name 所指的方法在 object 所指的对象类中已定义,则返回 TRUE,否则返回 FALSE。
property_exists — 检查对象或类是否具有该属性
格式:bool property_exists ( mixed $class , string $property )
本函数检查给出的 property 是否存在于指定的类中(以及是否能在当前范围内访问)。
下面是栗子:
function __autoload($classname){ echo "Class ".$classname." is not exist!<br>"; } var_dump(class_exists('aclass',false)); //判断类名为aclass的类是否存在 echo '<br>'; class person{ public $name = 'zhangsan'; private $age = 20; public function say(){} public function write(){} public function read(){} } var_dump(get_class_methods('person')); //获取类person有哪些成员方法 echo '<br>'; $a = new person(); var_dump(get_class_methods($a)); //用对象一样可以回去类的成员方法 echo '<br>'; $p = new person(); echo get_class($p); //获取对象的类名 echo '<br>'; print_r(get_object_vars($p)); //获取对象的类成员属性,仅能获取public公有属性 echo '<br>'; class student extends person{ public $grade = 1; public function stu(){} } $stu = new student(); echo get_parent_class($stu); //返回对象的类的父类名称 echo '<br>'; var_dump(is_a($stu,'person')); //检测对象是否属于某个类或其父类 echo '<br>'; var_dump($stu instanceof person); //使用运算符 instanceof 可以实现同样的功能 echo '<br>'; var_dump(method_exists($stu,'stu')); //检测对象类中是否存在某个方法 echo '<br>'; var_dump(property_exists($stu,'grade')); //检测对象类中是否存在某个属性