我明白我的问题有点不对,但我仍然试图解决这个问题。PHP - 检查类名是否存储在一个字符串正在实现一个接口
我有一个接口Programmer
:
interface Programmer {
public function writeCode();
}
和一对夫妇命名空间类:
Students\BjarneProgrammer
(实现Programmer
)Students\CharlieActor
(实现Actor
)
我存储在阵列$students = array("BjarneProgrammer", "CharlieActor");
我想编写一个函数这个类的名字,如果它实现Programmer
界面,将返回类的一个实例。
例子:
getStudentObject($students[0]);
- 因为它是实现程序员应该返回BjarneProgrammer
一个实例。
getStudentObject($students[1]);
- 它应该返回false
,因为查理不是程序员。
我试过使用instanceof
运算符,但主要问题是我不想想实例化一个对象,如果它没有实现程序员。
我检查了How to load php code dynamically and check if classes implement interface,但没有合适的答案,因为我不想创建对象,除非它是由函数返回的。
@how:OP说他们不想实例化类。 –