【发布时间】:2019-01-03 23:05:14
【问题描述】:
无法使用PHP.net 中描述的use function 关键字导入函数。在本地重新创建示例将返回 PHP Fatal error: Uncaught Error: Call to undefined function。
composer.json
{
"autoload": {
"psr-4": {
"My\\": ""
}
}
}
full.php
<?php
namespace My\Full;
function functionName()
{
echo 'Hello Stackoverflow';
}
index.php
<?php
require 'vendor/autoload.php';
use function My\Full\functionName as func;
func();
注意:我知道我可以要求该文件,但我想知道是否可以不这样做。
【问题讨论】:
-
您需要查看“auto loaders”。见SPL,也可以看看:php-fig.org/psr/psr-4
-
@ficuscr 这个自动加载器是否相关?使用这里描述的函数php.net/manual/en/language.namespaces.importing.php专门使用
use function语法 -
您告诉作曲家
My命名空间对应于您项目的根目录。因此,根目录中的任何类都应该在My命名空间中;不在My\Full命名空间中。如果Full.php(大写F)定义了一个类Full,它可以被自动加载。对于函数,我猜是一样的。 -
@minitauros php.net/manual/en/language.namespaces.importing.php 专门使用
use function My\Full\functionName as func;导入函数,从 PHP5.6 开始就可以使用,除非我解释不正确。 -
在 PHP 命名空间的上下文中使用单词
importing会造成混淆。会说是的,它与自动装载机有关。
标签: php function namespaces composer-php autoload