我正在尝试使用文件来设置与RedBeanPHP的数据库连接,该连接可以包含在其他任何地方。例如:
file1.php
<?php
require_once '../vendor/autoload.php';
use RedBean_Facade as R;
R::setup();
?>
file2.php
<?php
require_once 'file1.php';
R::debug(true);
?>
但是导航到file2.php会显示以下错误:
致命错误:第5行的/file1.php中找不到类'R'
PHP中的命名空间使用语句不能得到include
d?
答案 0 :(得分:2)
在PHP中namespace
和use
声明仅在它们出现的物理文件中有效。这些声明不跨越require
。它们已在编译时处理。
如果a.php
在其名称空间中使用别名,并且b.php
包含别名,则a.php
将无法看到b.php
中定义的别名。
您必须在每个文件中插入use
语句。 Here's the documentation:
导入规则基于每个文件
但是,您可以使用class_alias:
解决此问题class_alias('RedBean_Facade', 'R');