【发布时间】:2013-12-08 19:20:13
【问题描述】:
我知道我的问题在某种程度上是错误的,但我仍在努力解决这个问题。
我有一个接口Programmer:
interface Programmer {
public function writeCode();
}
还有几个命名空间类:
-
Students\BjarneProgrammer(实现Programmer) -
Students\CharlieActor(实现Actor)
我有这个类名存储在数组$students = array("BjarneProgrammer", "CharlieActor");
我想写一个函数,如果它实现Programmer接口,它将返回一个类的实例。
示例:
getStudentObject($students[0]); - 它应该返回一个 BjarneProgrammer 的实例,因为它正在实现 Programmer。
getStudentObject($students[1]); - 它应该返回 false,因为 Charlie 不是程序员。
我尝试使用 instanceof 运算符,但主要问题是我不想如果对象没有实现 Programmer,我不想实例化它。
我检查了How to load php code dynamically and check if classes implement interface,但没有合适的答案,因为我不想创建对象,除非它由函数返回。
【问题讨论】:
-
@how:OP 说他们不想实例化这个类。
标签: php oop namespaces