摘自PHP手册[3] – Classes/Objects 类/对象函数

黄舟
黄舟 原创
2016-12-22 10:11:00 1127浏览

简介:本类函数允许获取类和对象实例的信息。可以取得对象所属的类的名字,以及它的成员属性和方法。通过使用这些函数,不仅可以弄清楚一个对象类的全体成员,而且可以知道它的起源(例如,该对象类是哪个类的扩展)。

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 ,使用方法如下:




<?php
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 ,例如:




<?php
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中文网(m.sbmmt.com)!


声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。