<?php
class foo {}
class bar extends foo {}
class baz extends bar {}
print_r(class_parents(new baz));
?>
Will output:
Array
(
[bar] => bar
[foo] => foo
)
(PHP 5, PHP 7, PHP 8)
class_parents — 返回指定类的父类
$object_or_class
, bool $autoload
= true
): array|false
本函数返回包含了指定 object_or_class
父类名的数组。
成功时为数组,当指定类不存在则为 false
。
示例 #1 class_parents() 示例
<?php
class foo { }
class bar extends foo {}
print_r(class_parents(new bar));
// 可以指定参数为字符串
print_r(class_parents('bar'));
spl_autoload_register();
// 使用自动加载去加载“not_loaded”类
print_r(class_parents('not_loaded', true));
?>
以上示例的输出类似于:
Array ( [foo] => foo ) Array ( [foo] => foo ) Array ( [parent_of_not_loaded] => parent_of_not_loaded )
注意: 检测对象是否 implements interface,应该使用
instanceof
或 is_a() 函数。
<?php
class foo {}
class bar extends foo {}
class baz extends bar {}
print_r(class_parents(new baz));
?>
Will output:
Array
(
[bar] => bar
[foo] => foo
)