任何人都知道在PHP中是否有可能强制一个类扩展或实现一个接口而不需要声明它的子类?强制一个动态加载的类来扩展或实现一个接口
例子:
interface Requirements
{
public function __construct();
public function kittens();
}
class DingleBerry
{
public function __construct()
{
// yadda yadda yadda
}
}
// Example of my initial hope
// of what you could do
$kittens = new DingleBerry implements Requirements;
显然,这是不行的,但我需要装载在具有的接口的要求没有预定的知识,但被迫遵守他们班的方式。
我的总体目标是检查该类是否实现了它的加载并调用其构造函数的要求BEFORE。
,所以我不能用这个:
interface Requirements
{
public function __construct();
public function kittens();
}
class DingleBerry
{
public function __construct()
{
// DO BAD STUFF (i.e. eat your soul)
}
}
// Example of what I CANNOT
// do.
$kittens = new DingleBerry;
if(!($kittens instanceof Requirements))
{
// eat pizza.
}
因为那时DingleBerry的构造函数被调用之前,我可以检查它是否实现了要求。挖?
这将** **检查,如果该接口实现,但不会让班级执行它。 – netcoder 2011-01-26 23:53:44
嗯,那就是你的问题的第二部分,关于在调用DingleBerry的构造函数之前,你可以检查它是否实现了它。 – scragz 2011-01-26 23:56:14