这是我的问题,当我在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”类
答案 0 :(得分:1)
导入规则是每个文件的基础,这意味着包含的文件不会继承父文件的导入规则。
您还需要在File2.php中添加product_version
语句。
更新
如果包含的文件位于同一名称空间(use
),则您不需要导入\cdb
。
在其他情况下,你可以使用class_alias()
在运行时为该类创建另一个名称,但是使用常规显式导入有点棘手且更好。