Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP调用_user_func作为名称空间别名_Php_Namespaces_Alias - Fatal编程技术网

PHP调用_user_func作为名称空间别名

PHP调用_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 *

我想知道是否可以从一个名字间隔的文件中调用函数

目前,下面的代码产生一个错误。我知道传递整个名称空间是可能的,但是有没有一种更自动化的方法只使用别名U

使用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”)