例程:
namespace test;
class abc{
public static $a =1;
private function ab()
{
echo ‘ab‘;
}
public function cd()
{
echo ‘cd‘;
}
}
class hi extends abc
{
}
1、get_class_methods
print_r(get_class_methods(‘test\abc‘));
输出:
Array
(
[0] => cd
)
因为 ab 方法为private所以不会输出
2、get_class_vars
print_r(get_class_vars(‘test\abc‘));
输出:
Array
(
[a] => 1
)
因为 $b 属性为private所以不会输出
3、is_callable
var_dump(is_callable([‘test\abc‘,‘ab‘])); //bool(false) 私有方法不可call
var_dump(is_callable([‘test\abc‘,‘cd‘]));//bool(true) 公有方法可call
var_dump(is_callable([$o,‘cd‘]));// bool(true) //可以用来检查类或对象
4、get_parent_class
print_r(get_parent_class(‘test\hi‘)); // test\abc
5、instanceof
var_dump( $o instanceof abc);
6、类::class
var_dump(abc::class);// test\abc
7、is_subclass_of
var_dump(is_subclass_of(‘test\hi‘,‘test\abc‘));//bool(true)
8、get_parent_class
echo get_parent_class(‘test\hi‘);//test\abc