假设我有一个包含一些文件的文件夹:
在每个文件中我都声明了命名空间,如下所示:
为database.php
namespace Infrastructure\Core
{
class Database
{...}
}
Run Code Online (Sandbox Code Playgroud)
Model.php
namespace Infrastructure\Core
{
class Model
{...}
}
Run Code Online (Sandbox Code Playgroud)
等等...
现在我想使用该命名空间中的所有类.想象一下,我有以下根文件
的index.php
use Infrastructure\Core
class Main
{
$database = new Database();
$controller = new Controller();
//...etc..
}
Run Code Online (Sandbox Code Playgroud)
这几乎就像java和C#命名空间,但显然在PHP中它不起作用......所以以下方法也不起作用:
的index.php
use Infrastructure\Core
class Main
{
$database = new Infrastructure\Core\Database();
$controller = new Infrastructure\Core\Controller();
//...etc..
}
Run Code Online (Sandbox Code Playgroud)
也不起作用,所以我终于想到了,好吧我也必须包含文件然后...仍然不起作用..我做错了什么?我真的没有得到数以百万计的例子,因为它看起来与我之前使用过的任何其他命名空间都有所不同.
有人可以使用正确的语法提供一个特定于此的示例,因此我可以使用PHP来了解它的全部内容.我认为它在php中的概念略有不同?
有几件事:
你的类需要加载,所以你要么自己构建一个基于classname // dir-name的自动加载器,要么手动包含正确的文件(所以用include和/或require
'use'仅用于'快捷方式',现在就忘了
你的命名空间声明是正确的,你必须从'root'调用它们,所以它们以a开头 \
$database = new \Infrastructure\Core\Database();
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |