ディレクトリ「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.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のドキュメントによると、インクルードは次のように行います。「インクルードステートメントは、指定されたファイルをインクルードして評価します。」
http://php.net/manual/en/function.include.php
したがって、 manager.php が含まれているため、その include 関数のディレクトリは別のディレクトリに「含まれている」ため、エラーをスローする必要があります。
説明は、ドキュメントへの参照に役立ちます。
ありがとう