需要帮助php5.3静态继承
在php 5.3中使用这个静态'继承'有点麻烦
我需要测试静态类中是否存在静态函数,但我需要在父静态类中测试它。
我知道在php 5.3中我可以使用'static'关键字来模拟'this'关键字。
我只是找不到测试函数是否存在的方法。
这是一个例子:
// parent class
class A{
// class B will be extending it and may or may not have
// static function name 'func'
// i need to test for it
public static function parse(array $a){
if(function_exists(array(static, 'func'){
static::func($a);
}
}
}
class B extends A {
public static function func( array $a ){
// does something
}
}
所以现在我需要执行B::parse();
我的想法是,如果子类有一个函数,它将被使用,
否则不会被使用。
我试过了:
function_exists(static::func){}
isset(static::func){}
这两个不起作用。
任何想法如何做到这一点?
顺便说一句,我知道传递lambda函数作为变通方法的可能性,这不是一个
在我的情况下选择。
我觉得有一个非常简单的解决方案,我现在想不起来。
现在我需要打电话
没有找到相关结果
已邀请:
2 个回复
逝媳蘑贩茄
用于类和对象(方法),仅用于函数。你必须使用
或
。
仅适用于变量。另外,
不模拟
,它们是两个完全不同的东西。 话虽如此,在特定情况下,你必须使用带引号
关键字的
:
要么...
稀瓣囊
请参见http://php.net/get_called_class