我想将一个静态函数分配给一个变量,以便我可以将它作为参数发送。例如:
class Foo{
private static function privateStaticFunction($arg1,$arg2){
//compute stuff on the args
}
public static function publicStaticFunction($foo,$bar){
//works
$var = function(){
//do stuff
};
//also works
$var = function($someArg,$someArg2){
//do stuff
};
//Fatal error: Undefined class constant 'privateStaticFunction'
$var = self::privateStaticMethod;
//same error
$var = Foo::privateStaticFunction;
//compiles, but errors when I try to run $var() somewhere else, as expected
//Fatal error: Call to private method Foo::privateStaticMethod() from context ''
$var = function(){
return Foo::privateStaticMethod();
};
}
}
我尝试了更多变体,但没有一个奏效。
我什至不希望这种功能性黑客可以与 PHP 一起使用,但是嘿,谁知道呢?
是否有可能在 PHP 中做到这一点,或者我需要想出一些技巧eval
吗?
PS:##php上的 LawnGnome提到了一些关于可以做我想做的事情的事情,array('Foo','privateStaticMethod')
但我不明白他的意思,因为他看起来很忙,所以我没有进一步催促他。