2012-08-22 70 views
1

我试图使用call_user_func_array动态调用函数,但是我面临的问题是,如果函数返回布尔值,则参数变量存储在数组中,但如果函数返回一个字符串它会正常工作php调用函数动态返回null

call_user_func_array()预计参数1是不包含在 有效的回调,功能 '等于' 未找到或无效的功能 名称...

$param = array (
    0 => Jill 
    1 => Jack 
); 

echo call_user_func_array("equal", $param); 

function equal($str, $str_2) { 
    if ($str==$str_2) { 
     return true; 
    } else { 
     return false; 
    } 
} 
+0

他们在同一个地方,或包括'equal'吗? –

+0

在其他地方,但调用返回字符串的函数效果很好。 – meWantToLearn

+0

他的意思是:你包含文件是否包含'equal()'_before_你调用'call_user_func_array()'? – KingCrunch

回答

2

我试过了你的剧本。它正在工作并返回“错误”。 只需使用var_dump()而不是echo来测试它。 如果equal()返回数组,则返回数组。对我来说没有错误。

+2

也适用于我,一旦我修复了数组语法问题。 – Barmar