php调用匿名函数

时间:2014-03-26 18:49:43

标签: php lambda

我有一个匿名函数:

$rules = array(
    'asdf' => array('required'),
    'zxcv' => array('function ($data) {
    return strtoupper($data); }'),
);

发现在' zxcv' $ rules数组的键。我需要调用此函数,我已经尝试了一些方法,包括:

$rules['zxcv']('mydata');

array_map($rules['zxcv'], 'mydata');

call_user_func($ rules [' zxcv'],' mydata');无济于事

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:4)

这是一个字符串,而不是一个函数。丢失引号并使其如此:

$rules = array(
   'asdf' => array('required'),
   'zxcv' => function($data) { return strtoupper($data); }
);

使用array_map()

array_map($rules['zxcv'], $someArray);

单独调用该函数:

echo $rules['zxcv']('foo'); // FOO

Demo

答案 1 :(得分:3)

你所拥有的是string,而不是function

您正在寻找的是:

$rules = array(
   'asdf' => array('required'),
   'zxcv' => function($data) { return strtoupper($data);}
);

然后你就可以这样称呼它:

$rules['zxcv'](YOUR_DATA);
array_map($rules['zxcv'], YOUR_DATA);