【发布时间】:2018-02-02 10:55:43
【问题描述】:
我对 PHP 命名空间项目非常陌生。我正在尝试设置一个简单的项目。假设我有一个文件 header.php。在文件的顶部我有这个代码:
use Src\Myclass;
在我的 header.php 中我可以调用
new Myclass()
现在我有一个名为 index.php 的文件。我在此文件中包含 header.php:
include 'header.php'
既然header.php已经有'use Src\MyClass',为什么我不能从index.php调用new MyClass()强>文件?
如果我也将use语句添加到index.php文件中,我可以再次调用new MyClass(),但这似乎是多余的,因为我已经在包含的header.php中包含了use语句?
在父文件中声明使用时,同样的问题也适用,然后包括子文件。子文件将无法访问包含在父文件中的 use 语句中的类。
所以,如果我有一个 index.php 文件调用 10 个子文件(例如)menu.php、footer.php, partial-1.php 等。我需要将use语句添加到所有这些子文件中吗? (从我的测试看来是这样)为什么我不能通过父文件中的 use 语句访问该类?就像我通常能够访问父类中定义的变量一样。
我觉得必须有一种更好/更清洁的方式来访问所有子文件中的类,而不是必须添加
use Src\Myclass;
到每个单独的子文件。
【问题讨论】:
标签: php namespaces