php 获得调用类名,php如何获取当前类名,继承中的问题?

楼主提的问题好像是:

因为A,C,D都是继承的B,但是B里面的函数需要得到「是A,还是C」?

class Base {

public function log() {

// 目标类,输出:A、C

echo static::class;

//echo get_called_class();

//echo get_class($this);

// 基类,输出:Base

//echo __CLASS__;

//echo self::class;

}

}

class A extends Base {}

class C extends Base {}

echo (new A)->log(); // 输出: A

echo (new C)->log(); // 输出: C

如果你的需求是在A里面,得知继承的谁,这可以用到反射了

// 类外获得

$a = new A();

echo get_parent_class($a);

//类中获得

class C extends Base {

public function log1() {

echo get_parent_class($this);

}

}

// 反射,取出所有extends的父级

// 如上,在C类中,$a换成$this即可

$class = new ReflectionClass($a);

$parents = [];

while ($class = $class->getParentClass()) { // 查询 implements 用 getInterfaces

$parents[] = $class->getName();

}

print_r($parents);

> 更多信息,自己看

调试

debug_backtrace

反射

ReflectionClass

函数

get_called_class

get_class

get_class_methods

get_class_vars

get_object_vars

get_parent_class

method_exists

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值