第一次尝试处理这个call_user_func_array,但有些东西不起作用,因为我没有得到该函数的响应,我还能错过什么?
function _a_($id, $text) {
if($id == 'a') {
_b_();
if(substr($text, 0, 8) == "{source}") {
$campos = substr_replace($text, '', 0, 8);
$campos = substr($campos, 0, -9);
$funcao = explode(";", $campos);
print_r($funcao);
call_user_func_array($funcao[0], $funcao[1]);
}
} else {
echo $text."<br>";
}
}
function _b_() {
echo "b was fired<br>";
}
function _c_($some_text) {
echo "received a call<br>";
echo "inside function c: ".$some_text."<br>";
}
_a_("a", "{source}_c_;ola{/source}");
答案 0 :(得分:4)
说出这个:
call_user_func($funcao[0], $funcao[1]);
或者这个:
call_user_func_array($funcao[0], array($funcao[1]));
后一种形式仅在您需要通过引用传递参数时才有用;有关详细信息,请参阅the documentation。
答案 1 :(得分:4)
call_user_func_array($funcao[0], $funcao[1]);
=&GT;
call_user_func_array($funcao[0], array($funcao[1]));
答案 2 :(得分:3)
call_user_func_array()期望第二个参数是一个数组。如果您知道参数的数量,请使用 call_user_func 。