欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

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

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中文网(www.php.cn)!