PHP 命名空间和全局自动加载单个文件

标签 php namespaces autoload

这是在单个文件中使用 PHP 命名空间/自动加载的实验。

namespace trust;

class trust_network{        
    public function __construct(){      
        print "SUP";
    }
}

namespace trust2;

$trust = new \trust\trust_network(); $do = new \test();

function __autoload($class){
    require($class.".php");     
    print $class;
}

因此,在命名空间 trust2 下,我正在调用“\test” - 也就是我想从全局基础上的外部文件自动加载该类。我写的不起作用。我知道我在命名空间下有 __autoload,但我如何在全局基础上声明它?不能在命名空间声明之前包含。

最佳答案

对于一个文件中的多个命名空间,您应该使用大括号语法:

namespace n1 {
...
}
namespace n2 {
...
}
namespace {
...
}

在最后一个块中,您可以在全局命名空间中声明函数。引用:http://www.php.net/manual/en/language.namespaces.definitionmultiple.php

关于PHP 命名空间和全局自动加载单个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15009432/

相关文章:

php - "Class not found"使用 php/silex

php - Laravel 在中间件中获取 {id} 获取参数

php - 如何获得以微秒为单位的持续时间

php - 更新数据库中的评论数

r - “数据”不是从 'namespace:my_package' 导出的对象

PHP - 最轻量级的 psr-0 兼容自动加载器

php - 使用 PHP 移除 MS Word "HTML"

c# - 更改资源文件 (resx) 命名空间和访问修饰符

C#:显式命名空间未出现在生成的 XML 中

ruby-on-rails - 如何在 Rails 中列出所有自动加载路径