在函数中使用 php 命名空间

2022-08-30 12:41:05

尝试在自己的函数中使用命名空间时遇到解析错误

require('/var/load.php');

function go(){

  use test\Class;

    $go = 'ok';
    return $go;
}

    echo go();

答案 1

用于导入的范围界定规则

use 关键字必须在文件的最外层作用域(全局作用域)或命名空间声明内部声明中声明。这是因为导入是在编译时而不是运行时完成的,因此它不能被阻止范围

所以你应该这样,使用应该在全局级别指定

require('/var/load.php');
use test\Class;

function go(){
    $go = 'ok';
    return $go;
}
echo go();

查看以下手册中的示例 5 请参阅其手册 http://php.net/manual/en/language.namespaces.importing.php


答案 2

手册中

关键字必须在文件的最外层作用域(全局作用域)或命名空间声明内部声明中声明。use


推荐