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()
そのままのユースケースは何ですか?