PHP函数将数据返回到数组

时间:2012-07-25 18:24:55

标签: php arrays function post multidimensional-array

我有很少的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);

3 个答案:

答案 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将采用testOnetestTwo的值,然后告诉代码运行什么函数。那么,您要做的是使用变量函数名称调用函数并将返回的值捕获到变量中:

$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的值应为testOnetestTwo

Docs for call_user_func here