PHPinclude()およびrequire()関数を使用して別のファイルをインクルードするファイルをインクルードする場合、2 番目のファイルの PWD (相対参照) はinclude()、元のスクリプトの場所 (Apache によって呼び出されたスタック内の最初のスクリプト) のディレクトリであり、現行ファイル。その背後にある設計上の決定は何ですか?また、ユースケースは何ですか?
たとえば、 で定義された一般的なデータベース接続クラスが~/public_html/classes/database.php、その構成データ (ユーザー名、パスワード) を の Web ルートから格納するとします~/config.php。データベース構成クラスの作成者は、相対ファイル名で構成ファイルを論理的に呼び出します../../config.php。database.phpただし、PWD はファイルのものではなく、それを含むファイルのものであるため、これは期待どおりに機能~/public_html/index.phpしません~/public_html/someDir/somePage.php。
で現在のファイルのディレクトリを取得することで、これを回避することができますdirname(__FILE__)。ただし、元のスクリプトの場所を基準にしたいrequire()、または相対的な使用例を 1 つも思いつきません。include()そのままのユースケースは何ですか?