Php 获取声明的类()仅返回我直接使用的类
我正在尝试获取实现我的接口的类的列表。这些类是根据用户输入动态实例化的Php 获取声明的类()仅返回我直接使用的类,php,Php,我正在尝试获取实现我的接口的类的列表。这些类是根据用户输入动态实例化的 public function new($className) { $instance = new $className; return $instance; } public function getClasses() { var_dump(get_declared_classes()); } 但是,当我使用get_declared_classes()时,这些接口的实现不在列表中。如果我手动实例
public function new($className) {
$instance = new $className;
return $instance;
}
public function getClasses() {
var_dump(get_declared_classes());
}
但是,当我使用get_declared_classes()
时,这些接口的实现不在列表中。如果我手动实例化它们并将它们丢弃,它们将出现在列表中
长颈鹿将出现在下面,但不在上面的示例中
public function new($className) {
$throwAway = new Giraffe();
$instance = new $className;
return $instance;
}
public function getClasses() {
var_dump(get_declared_classes());
}
如何获得包含这些实现的列表,而不必像上面那样实例化每个实现?您永远不需要这样的东西。更好地使用接口。要坚实;)我需要知道哪些类实现了接口,在上面的示例中,可以是
AnimalInterface
,以在GUI中构建下拉列表。最终用户将选择哪个AnimalInterface
实现应该吃掉他的苹果。你不需要这些类。将接口作为对象发送。(依赖项反转)您建议如何获得对象?客户端将发送一个字符串,其中包含它想要使用的实现的名称,例如,Giraffe
您永远不需要这样的东西。更好地使用接口。要坚实;)我需要知道哪些类实现了接口,在上面的示例中,可以是AnimalInterface
,以在GUI中构建下拉列表。最终用户将选择哪个AnimalInterface
实现应该吃掉他的苹果。你不需要这些类。将接口作为对象发送。(依赖项反转)您建议如何获得对象?客户端将发送一个字符串,其中包含要使用的实现的名称,例如Giraffe