Php 获取闭包返回的类的父类而不实例化

Php 获取闭包返回的类的父类而不实例化,php,class,oop,closures,Php,Class,Oop,Closures,如何在不实例化类的情况下获取包含闭包返回的类的父类名称的字符串 class Foo {} class Bar extends Foo {} $closure = function() { return new Bar; }; 如果不实例化Bar,如何获取字符串('Foo')?我不能期望$closure将返回什么,因为它将被输入到我的类中 我知道我可以使用ReflectionClass::getParentClass()方法获取另一个类的父类 甚至有可能吗?我不明白您想要实现什么以及

如何在不实例化类的情况下获取包含闭包返回的类的父类名称的字符串

class Foo {}

class Bar extends Foo {}

$closure = function() {
    return new Bar;
};
如果不实例化Bar,如何获取字符串('Foo')?我不能期望
$closure
将返回什么,因为它将被输入到我的类中

我知道我可以使用
ReflectionClass::getParentClass()
方法获取另一个类的父类


甚至有可能吗?

我不明白您想要实现什么以及为什么不能期望闭包的输出,但您可以做类似的事情:

<?php

class Foo {}

class Bar extends Foo {}

$closure = function() {
    $reflection = new ReflectionClass('Bar');
    return $reflection->getParentClass()->getName();
};

var_dump($closure());

为什么不
$parent=get\u parent\u class($closure())
@AbraCadaver这将实例化
$closure
。这是唯一的办法吗?据我所知,但我们拭目以待。@AbraCadaver我没有找到任何办法,我会坚持你的办法。谢谢。我只知道闭包将返回一个对象,我想知道闭包将返回的对象的父类,但我不想将其实例化为对象。为什么不想创建一个类的新实例?是否需要父类方法来进行验证?使用类继承还不够吗?因为类不会被使用,我不想让类记录任何东西,因为我只想知道它的父类。有没有一种方法可以在不调用构造函数的情况下创建类?如果新创建的对象存在,则会调用构造函数方法。您可以创建一个新类来扩展以前的类,在这种情况下不会隐式调用构造函数。是的,但是通过克隆
$closure()
,我将调用
$closure()
。因此,我将只执行
get\u parent\u类($closure())
,它将调用
Bar
string 'Foo' (length=3)