Function as array value

前端 未结 4 1380
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-05 19:31

I can\'t seem to find anything of this, and was wondering if it\'s possible to store a function or function reference as a value for an array element. For e.g.



        
4条回答
  •  一生所求
    2020-12-05 20:27

    You can "reference" any function. A function reference is not a reference in the sense of "address in memory" or something. It's merely the name of the function.

     'strlen',
      'class_function' => array('ClassName', 'functionName'),
      'object_method' => array($object, 'methodName'),
      'closure' => function($foo) {
        return $foo;
      },
    );
    
    // while this works
    $functions['regular']();
    // this doesn't
    $functions['class_function']();
    
    // to make this work across the board, you'll need either
    call_user_func($functions['object_method'], $arg1, $arg2, $arg3);
    // or
    call_user_func_array($functions['object_method'], array($arg1, $arg2, $arg3));
    

提交回复
热议问题