如果我使用命名空间,我想知道为什么我应该使用 require_once ?
如果我必须使用 require_once ,那么'use'关键字和命名空间的重点是什么。
(我知道这是从Java导入和包中思考的另一种方式)
答案 0 :(得分:1)
命名空间/使用(导入类/命名空间)和require / include(_once或不是)系列函数之间没有关系。
如果您使用PSR-0或PSR-4兼容的自动加载,例如Composer的自动加载器,那么您不需要使用require / include来为您的代码添加一些类。
命名空间允许您将代码划分到内存中的不同部分,以防止类/函数名称发生冲突。 Use是一个关键字,它将现有的命名空间实体导入到文件的当前命名空间范围内(每个文件可能只有一个命名空间),这将阻止您必须提供类或函数名称的完整路径:
namespace \My\Namespace\Path;
use \My\Other\Namespace\Path;
use \My\Last\Namespace\ClassName;
现在,您可以在当前命名空间中使用\ My \ Other \ Namespace \ Path中的任何内容,而无需指定整个路径。