0

我有几个 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);
4

3 回答 3

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.

如果这就是你的意思。如果我理解错误,请纠正我。

于 2012-07-25T18:29:08.577 回答
1

函数仅在调用时运行。你还没有调用你的任何一个函数。

从您的代码的外观来看,我假设$functionname它将采用testOneor的值testTwo,然后告诉代码要运行什么函数。然后,您想要做的是使用变量函数名称调用函数并将返回的值捕获到变量中:

$functionname = $_POST['functionname'];
//function definitions
$response = array('result' => array('response'=>'success'), 'clients' => $functionname());

请参阅文档以获取...文档。

于 2012-07-25T18:30:35.417 回答
0

我认为您想从$functionname变量中调用该函数..如果是这样,您就是这样做的:

$data = call_user_func($functionname);
$response = array('result' => array('response'=>'success'),'clients' => $data);

在这种情况下,值$functionname应该是testOnetestTwo

call_user_func这里的文档

于 2012-07-25T18:30:26.657 回答