dongzha5934 2012-09-10 21:07
浏览 9
已采纳

为变量分配静态函数

Is there any way to assign a static function to a variable, or accomplishing this in some other way?

class my_class{
     public static function my_method($a){
        return $a;
     }
}

$some_func = my_class::my_method;

$someAnonFunc = function($a) use ($some_func){
    return $some_func($a);
}

$inst = new SomeOtherClass(); //Defined somewhere else, in some other file

$inst->someMethod($a, $someAnonFunc);

At this point, I get:

Fatal error: Undefined class constant 'my_method'

  • 写回答

3条回答 默认 最新

  • douzi7711 2012-09-10 21:12
    关注

    Functions are not first class in PHP .. strings are. You would have to use call_user_func if you wanted to stick with the :: syntax as one unit:

    $some_func = 'my_class::my_method';
    $someAnonFunc = function ($a) use ($some_func) {
       return call_user_func($some_func, $a);
    }
    

    Trying to run $some_func() will not work since it will treat the colons as part of the function name.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法