无法使用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();
注意:我知道我可以需要这个文件,但我想知道在不这样做的情况下是否可以。
发布于 2018-07-27 06:30:07
use function
不包含任何文件或函数定义,它只是一个完全限定的函数名的别名,这意味着当您调用函数时,您不需要指定名称空间。
在您的示例中,您使用的是composer,它非常适合自动包含文件,而来自https://www.php-fig.org/psr/psr-4/的PSR-4
:用于从文件路径自动加载类的规范
它不会自动加载不符合本规范的函数或文件。
但是,对于这种情况,您可以使用composer自动包含文件。您需要更新composer.json,然后运行composer dumpautoload
composer.json
{
"autoload": {
"files": ["full.php"]
}
}
然后你的其余部分可以保持不变,它应该可以工作。
https://stackoverflow.com/questions/51547511
复制相似问题