php类与对象的函数一

php类与对象的函数一

class_exists()检查类是否已定义

格式bool class_exists(str $class_name[,bool $autoload])

5.0.2版后,不再为已定义的接口返回TRUE。请使用interface_exists()。如:

if (!class_exists($class, false)) {

trigger_error("Unable to load class: $class", E_USER_WARNING);

}

get_class()返回对象的类名

格式string get_class([object $obj])

abstract class bar {

public function __construct(){

var_dump(get_class($this));

var_dump(get_class());

}

}

class foo extends bar {}

new foo;

输出:

string(3) "foo"

string(3) "bar"

get_class_methods()返回类的方法名组成的数组

类外不能返回私有方法

格式:array get_class_methods(mixed $class_name)

class my_class{

public function method1(){}

private function method2(){}

};

print_r(get_class_methods('my_class'));//数组,method1

get_object_vars()返回对象属性组成的关联数组

格式: array get_objece_vars(object $obj)

class foo {

private $a;

public $b = 1;

public $c;

private $d;

static $e;

public function test(){

var_dump(get_object_vars($this));

}

}

$test = new foo;

var_dump(get_object_vars($test));

$test->test();

输出
array(2) {

["b"]=>int(1)

["c"]=>NULL

}

array(4) {

["a"]=>NULL

["b"]=>int(1)

["c"]=>NULL

["d"]=>NULL

}

get_parent_class()返回对象或者类的父类名

格式:string get_parent_class([mixed $obj])

class dad {

function dad(){}

}

class child extends dad {

function child(){

echo "I'm " , get_parent_class($this) , "'s son";

}

}

$foo = new child();//I'm dad's son

is_a()同instanceof()

格式:bool is_a(object $object,str $class_name[, bool $allow_string = FALSE ])

$WF = new WFactory();

is_a($WF,'WFactory')等同于$WF instanceof WFactory

method_exists()检查类的方法是否存在

格式:bool method_exists($object,$method_name)

$directory = new Directory('.');

var_dump(method_exists($directory,'read'));//true

var_dump(method_exists('Directory','read'));//true

property_exists()检查对象或类是否具有该属性

格式:bool property_exists(mixed $class,str $property)

$directory = new Directory('.')

class myClass {

public $mine;

private $xpto;

static protected $test;

static function test() {

var_dump(property_exists('myClass', 'xpto')); //true

}

}

var_dump(property_exists('myClass', 'mine')); //true

var_dump(property_exists(new myClass, 'xpto')); //true, as of PHP 5.3.0

var_dump(property_exists('myClass', 'test')); //true, as of PHP 5.3.0

myClass::test();

get_declared_classes()返回所有已定义的类的名字组成的数组

格式:array get_declared_classes ( void )

print_r(get_declared_classes());

__autoload(php7.2弃用)

相关推荐