我有很少的php函数可以通过相同的变量返回各种数据,并且该变量应该分配给一个数组。现在我想通过检查$_POST
执行函数并将$ data分配给$response
多维数组......有没有办法做到这一点???
$functionname = $_POST['functionname'];
function testOne(){
$data = array('test'=>'value1');
return $data;
}
function testTwo(){
$data = array('test'=>'value2');
return $data;
}
//Here I need to execte each functions and return $data
$response = array('result' => array('response'=>'success'),'clients' => $data);
print_r($response);
答案 0 :(得分:1)
你可以直接调用数组内部的函数。
$response = array('result' => array('response'=>'success'),'clients' => testTwo());
现在在$response['clients']
中,该值将包含array('test'=>'value2');
或者如果您想通过用户输入调用函数。如果
if $_POST['funtionname'] = 'testOne'; then execute testOne();
if $_POST['funtionname'] = 'testTwo'; then execute testTwo();
然后你可以在这里使用call_user_func()
。像这样。
$_POST['funtionname'] = 'testOne';
call_user_func($_POST['functionname']);
//this will execute testOne(); and depending upon the value it consist, it will execute the corresponding function.
如果这就是你的意思。如果我理解错了,请纠正我。
答案 1 :(得分:1)
只有在调用函数时才会运行。你没有调用任何一个函数。
从代码的外观来看,我假设$functionname
将采用testOne
或testTwo
的值,然后告诉代码运行什么函数。那么,您要做的是使用变量函数名称调用函数并将返回的值捕获到变量中:
$functionname = $_POST['functionname'];
//function definitions
$response = array('result' => array('response'=>'success'), 'clients' => $functionname());
请参阅the docs,以及......文档。
答案 2 :(得分:0)
我认为您想要在$functionname
变量中调用该函数..如果是这样,您就是这样做的:
$data = call_user_func($functionname);
$response = array('result' => array('response'=>'success'),'clients' => $data);
在这种情况下,$functionname
的值应为testOne
或testTwo