1

ディレクトリ「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 関数のディレクトリは別のディレクトリに「含まれている」ため、エラーをスローする必要があります。

説明は、ドキュメントへの参照に役立ちます。

ありがとう

4

0 に答える 0