简介:本类函数允许获取类和对象实例的信息。可以取得对象所属的类的名字,以及它的成员属性和方法。通过使用这些函数,不仅可以弄清楚一个对象类的全体成员,而且可以知道它的起源(例如,该对象类是哪个类的扩展)。
class_exists — 检查类是否已定义
bool class_exists ( string $class_name [, bool $autoload ] )
如果由 class_name 所指的类已经定义,此函数返回 TRUE,否则返回 FALSE。
class_exists() 默认将会尝试调用 __autoload,如果不想让 class_exists() 调用 __autoload,可以将 autoload 参数设为 FALSE。
get_class_methods — 返回由类的方法名组成的数组
array get_class_methods ( mixed $class_name )
从 PHP 4.0.6 开始,可以指定对象本身来代替 class_name,即:
$class_methods = get_class_methods('myclass');
// or
$class_methods = get_class_methods(new myclass());
自 PHP 5 起,本函数按照方法被定义的名字返回(区分大小写)。在 PHP 4 中总是返回小写的。
get_class_vars — 返回由类的默认属性组成的数组
array get_class_vars ( string $class_name )
返回由类的默认公有属性组成的关联数组,此数组的元素以 varname => value 的形式存在。
get_class — 返回对象的类名
string get_class ([ object $obj ] )
返回对象实例 obj 所属类的名字。如果 obj 不是一个对象则返回 FALSE。
get_declared_classes — 返回由已定义类的名字所组成的数组
array get_declared_classes ( void )
get_declared_interfaces — 返回一个数组包含所有已声明的接口
array get_declared_interfaces ( void )
get_object_vars — 返回由对象属性组成的关联数组
array get_object_vars ( object $obj )
get_parent_class — 返回对象或类的父类名
string get_parent_class ([ mixed $obj ] )
如果 obj 是对象,则返回对象实例 obj 所属类的父类名。
如果 obj 是字符串,则返回以此字符串为名的类的父类名。此功能是在 PHP 4.0.5 中增加的。
自 PHP 5 起,如果在对象的方法内调用,则 obj 为可选项。
interface_exists — 检查接口是否已被定义
bool interface_exists ( string $interface_name [, bool $autoload ] )
本函数在由 interface_name 给出的接口已定义时返回 TRUE,否则返回 FALSE。
is_a — 如果对象属于该类或该类是此对象的父类则返回 TRUE
bool is_a ( object $object , string $class_name )
【天涯注】PHP 5 中此函数已废弃,取而代之的是PHP中的唯一的 类型运算符 instanceof ,使用方法如下:
class A { }
class B { }
$thing = new A;
if ($thing instanceof A) {
echo 'A';
}
if ($thing instanceof B) {
echo 'B';
}
?>
is_subclass_of — 如果此对象是该类的子类,则返回 TRUE
bool is_subclass_of ( object $object , string $class_name )
method_exists — 检查类的方法是否存在
bool method_exists ( object $object , string $method_name )
property_exists — 检查对象或类是否具有该属性
bool property_exists ( mixed $class , string $property )
【天涯注】需要说明的是,如果在‘当前范围’内,属性访问不到的话,比如是private,则依然返回 FALSE ,例如:
class myClass {
public $mine;
private $xpto;
static function test() {
// true, it can be accessed from here
var_dump(property_exists('myClass', 'xpto'));
}
}
var_dump(property_exists('myClass', 'mine')); //true
var_dump(property_exists(new myClass, 'mine')); //true
var_dump(property_exists('myClass', 'xpto')); //false, isn't public
myClass::test();
?>
以上就是摘自PHP手册[3] – Classes/Objects 类/对象函数的内容,更多相关内容请关注PHP中文网(www.php.cn)!