PHP调用_user_func作为名称空间别名
我想知道是否可以从一个名字间隔的文件中调用函数 目前,下面的代码产生一个错误。我知道传递整个名称空间是可能的,但是有没有一种更自动化的方法只使用别名UPHP调用_user_func作为名称空间别名,php,namespaces,alias,Php,Namespaces,Alias,我想知道是否可以从一个名字间隔的文件中调用函数 目前,下面的代码产生一个错误。我知道传递整个名称空间是可能的,但是有没有一种更自动化的方法只使用别名U 使用Helpers\User作为U; $t=调用用户函数('U\something','test'); var_dump(吨) 更新 我解决这个问题的方法是在名间隔文件中创建一个函数,返回文件名间隔 /** * * pntfn = Prepend namespace to function name * * @param $fn *
使用Helpers\User作为U;
$t=调用用户函数('U\something','test');
var_dump(吨)代码>
更新
我解决这个问题的方法是在名间隔文件中创建一个函数,返回文件名间隔
/**
*
* pntfn = Prepend namespace to function name
*
* @param $fn
*
* @return string
*/
function _pntfn($fn) {
return __NAMESPACE__.'\\'.$fn;
}
然后让我在一个文件中执行以下操作
use Helpers\Users as U;
如果我想从我的用户名称空间文件中编写(函数编程)函数,我将执行以下操作:
$get_username_upper = F\compose('strtoupper', U\_pntfn( 'get_username' ));
这不是我最喜欢的实现,但目前还有效。缺点是,您必须将其添加到所有以名称间隔的函数文件中 问题是U
在编译时得到解决,因此调用:
U\something
字面上变成:
Helpers\User\something
这可能仍然是无效的,因为我知道我们还有指令use function
,所以您可能也想检查一下
无论如何,字符串'U\something'
是一个运行时常量,这意味着U
在这一点上实际上并不引用任何东西。因此,不,很遗憾,这是不可能的。问题是U
在编译时得到解决,因此调用:
U\something
字面上变成:
Helpers\User\something
这可能仍然是无效的,因为我知道我们还有指令use function
,所以您可能也想检查一下
无论如何,字符串'U\something'
是一个运行时常量,这意味着U
在这一点上实际上并不引用任何东西。所以不,不幸的是这是不可能的。既然没有办法做到这一点,我所做的就是使用$U='Helpers\User'
然后调用用户函数(“$U\something”,“test”)
。既然没有办法做到这一点,我所做的就是使用$U='Helpers\User'
然后调用用户函数($U\something”,“test”)
。