PHP面向对象 – 常用函数

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'));	//检测对象类中是否存在某个属性

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇