我不能使用在 PHP [duplicate] 中的另一个命名空间中定义的函数

I cannot use a function that is defined in another namespace in PHP [duplicate]

提问人:Shoaib Wani 提问时间:9/17/2023 更新时间:9/17/2023 访问量:35

问:

我正在使用自动加载来加载用命名空间定义的文件。我在命名空间中定义了一个重定向函数:

<?php
namespace sirJuni\Framework\Helper;

function redirect($url) {
    header("Location: $url");
}

?>

项目结构如下:

- sirJuni\
    - src\
        - Helper\
            - Functions.php // where the function is defined

然后我想做的是使用自动加载来加载此文件并使用重定向功能:

<?php

require_once "vendor/autoload.php";

use function sirJuni\Framework\Helper\redirect;

redirect("hello/hi");
?>

这给出了一个错误:调用未定义的函数 但是,如果我尝试使用上述项目中定义的其他类,我可以毫无问题地使用它们。只有当我尝试使用另一个命名空间中的函数时才会发生这种情况。sirJuni

PHP 命名空间

评论


答:

2赞 Koala Yeung 9/17/2023 #1

PHP 目前没有函数的自动加载功能。use 语句仅引用函数的命名空间名称。您仍然需要手动包含函数 .php,以便您可以在其中使用函数。