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の値を取ると思います または実行する関数をコードに伝えます。次に、変数関数名を使用して関数を呼び出し、戻り値を変数にキャプチャします。testOnetestTwo

$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 に答える