1

しばらくして、ようやく次のような関数へのポインタを渡すことができました。

function originalFunction($value) {
  print "I am in the function, with value $value";
}

function testFunctionPointer($functionName, $id) {
  $functionName($id);
}

$test = testFunctionPointer("originalFunction", 200);

基本的に、STRINGを渡してその文字列を関数名として使用すると、関数が実行されることに気づきました。実際、上記の例では、「originalFunction」が正しく呼び出されています。

しかし、どうすればパラメータを機能させることができますか?常にゼロです...

PS:私がしていることはきれいではない、すべきではない、などなどです。しかし、それは私が自分自身のために行っている内部プロジェクトのためだけなので、誰もこれによって傷つくことはありません;)

前もって感謝します!

4

2 に答える 2

0

ええと、]を削除して}を置く以外に、このコードは私のために機能しました。私は関数にいて、値は200です。

私はphp5.4.4を実行しています

<?php 

function originalFunction($value) { 
  print "I am in the function, with value $value"; 
}

function testFunctionPointer($functionName, $id) { 
  $functionName($id); 
} 

$test = testFunctionPointer("originalFunction", 200); 


?>
于 2012-10-02T13:08:40.533 に答える
0

あなたのコードは私にとってうまく実行されており200、期待どおりに出力されています。

また、次のように直接呼び出すこともできます。

call_user_func("originalFunction", 200);
于 2012-10-02T13:12:39.050 に答える