假设我们在目录“includes”中有一个名为“include.php”的文件,该文件包含来自子目录“objects”的另一个文件“manager.php”,
include "objects/manager.php";
现在“manager.php”是一个类名“manager”,它有一个包含以下功能的函数:
public function includeDBObject()
{
include "databaseobjects/mysql.php";
}
这个包含是另一个类,“mysql 类”,它具有以下内容:
public $name = "I am in the MySql class";
public function getName()
{
return $this->name;
}
现在回到原来的include,“include.php”,内容如下
include "objects/manager.php";//as shown above
$a = new manager;
$a->includeDBObject();
$b = new mysql;
echo $b->getName();
这样做的结果是:“我在 MySql 类中。”
$a->includeDBObject 不应该触发无法找到文件的错误,因为指定的目录与“include.php”所在的位置有关吗?
根据 php 文档,include 确实:“include 语句包含并评估指定的文件。”
http://php.net/manual/en/function.include.php
因此,由于 manager.php 包含在其包含函数中的目录应该引发错误,因为它被“包含”在不同的目录中。
任何解释都有助于参考文档。
谢谢