任何人都知道在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