php在包含的文件中丢失了我的“使用”名称

时间:2017-01-03 17:56:47

标签: php namespaces include

这是我的问题,当我在php中使用“use”定义一个类名,然后我尝试包含一个文件时,它丢失了我在父文件中定义的“used name”。像这样:

File1.php:

use \cdb\Date as H;
echo "<br> > 1 > " . H::Now();
require 'File2.php';

File2.php:

echo "<br> > 3 > " . H::Now();

当我执行我的File1.php代码时,会出现此错误:

  

致命错误:第3行的File2.php中找不到“H”类

1 个答案:

答案 0 :(得分:1)

Scoping rules for importing

  

导入规则是每个文件的基础,这意味着包含的文件不会继承父文件的导入规则。

您还需要在File2.php中添加product_version语句。

更新

如果包含的文件位于同一名称空间(use),则您不需要导入\cdb

在其他情况下,你可以使用class_alias()在运行时为该类创建另一个名称,但是使用常规显式导入有点棘手且更好。