php 找祖先,在继承树中获取PHP对象的祖先

该博客探讨了如何在PHP中获取一个对象的所有父类,直到达到像stdClass这样的基类。作者提到已经为数据库表添加了一个多态字段来跟踪类别,并希望在Finder方法中自动化这个过程,以便返回超类。他们提出了一种使用`get_parent_class()`函数的解决方案,但担心这会导致实例化不必要的对象。社区被邀请提供更高效的实现方式。
摘要由CSDN通过智能技术生成

我有一个对象,想要列出所有父类,直到stdClass或其他什么.

我已经在我的数据库表中添加了一个多态字段(比如类别),并希望自动化我的finder方法,以便还返回超类,这样我就可以跳到继承树中,我知道不一定是最后的子类:

FoodCategory::find_by_id(10) === Category::find_by_id(10)

SELECT * FROM categories WHERE ..... AND type IN ('FoodCategory', 'Category');

粗略地我猜:

function get_class_lineage($object){

$class = get_parent_class($object);

$lineage = array();

while($class != 'stdClass'){

$dummy_object = new $class();

$lineage[] = $class = get_parent_class($dummy_object);

}

return $lineage;

}

但这会实例化一个对象,有没有人知道如何实现这个目标?

感谢任何输入,我觉得我在这里遗漏了一些明显的东西.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值