php interface exists,43、面向对象方法get_object_vars、is_subclass_of、interface_exists

1、get_object_vars($obj) 获得对象的属性,以关联数组形式返回。

get_class_methods() 获得类的方法,以关联数组形式返回。

class A{

public $name;

public $age;

public $sex;

public function __construct($name,$age,$sex){

$this->name = $name;

$this->age = $age;

$this->sex = sex;

}

}

$a = new A('fxxy','28','man');

echo '

';

print_r(get_object_vars($a));//获得对象属性集合,以数组形式展示

print_r(get_class_methods('A'));//获得类方法集合,以数组形式展示

2、get_parent_class(),参数是对象或者是类名,获得父类。

class A{

public $name;

public $age;

public $sex;

public function show(){

return $this->name;

}

}

class B extends A{

}

$b = new B();

echo get_parent_class($b);//A

3、is_subclass_of($obj,$class):判断对象是否是某个类的子类实例化产生的。

class A{

public $name;

public $age;

public $sex;

public function show(){

return $this->sex;

}

}

class B extends A{

}

$b = new B();

echo is_subclass_of($b,'A');//1

4、interface_exists():判断接口是否存在。

interface A{

function eat();

function walk();

function run();

}

class B implements A{

function eat(){

echo 'eat';

}

function walk(){

echo 'walk';

}

function run(){

echo 'run';

}

}

echo interface_exists('A');//1

5、get_class():获得当前对象是哪个类实例化出来的。

6、get_declared_classes():以数组形式返回当前脚本中所有的类。

7、get_declared_interfaces():以数组形式返回当前脚本中的所有接口。

class Person{

private $name;

private $age;

private $sex;

public function show(){

echo $this->show();

}

}

$person = new Person();

echo get_class($person);//Person

echo '

';

print_r(get_declared_classes());

interface A{

function see();

function watch();

}//当前脚本中所有的类

print_r(get_declared_interfaces());//当前脚本中所有的接口

8、method_exists():判断某个类中是否存在某个方法,也就是检查类的方法是否存在。

9、property_exists():判断某个类中是否存在某个属性,也就是检查类的属性是否存在。

10、instanceof:判断某个对象是否是某个类实例化产生的。

class A{

public $name;

public $age;

public function show(){

echo 'show';

}

}

$a = new A();

var_dump(method_exists($a,'show'));//true

var_dump(method_exists($a,'go'));//false

var_dump(property_exists('A','name'));//true

var_dump(property_exists($a,'sex'));//false

echo $a instanceof A;//1

echo $a instanceof B// 空

后续还会继续更新更多面向对象有关的函数!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值