百度了很多都说这样call_user_func('func', 'params')使用,但是在有命名空间的项目中是会报错:
call_user_func() expects parameter 1 to be a valid callback, function 'aaa' not found or invalid function name
call_user_func函数类似于一种特别的调用函数的方法,错误使用方法如下:
<?php
function nowamagic($a,$b)
{
echo $a;
echo $b;
}
call_user_func('nowamagic', "111","222");
call_user_func('nowamagic', "333","444");
//显示 111 222 333 444
?>
call_user_func() 此函数在有命名空间的项目中 正确使用得这样传参数
<?php
namespace Foobar;
class Foo {
static public function test() {
print "Hello world!\n";
}
}
call_user_func(__NAMESPACE__ .'\Foo::test'); // As of PHP 5.3.0
call_user_func(array(__NAMESPACE__ .'\Foo', 'test')); // As of PHP 5.3.0
?>
命名空间就是在函数 方法前面拼接了命名空间的字符串 在函数的 hashtable里名字已经变成 命名空间拼接上 函数名