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

我正在运行 php 5.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 回答