次のようなディレクトリ/ファイル ツリーがあります。
index.php
/frame/main_class.php
/frame/func/function_1.php
/frame/func/function_1.php
/cfg/config.php
//index.php
require('frame/main_class.php');
new main_class;
//frame/main_class.php
class main_class{
public function __construct(){
require('func/function_1.php');
require('func/function_2.php');
require('cfg/config.php');
}
}
奇妙な部分は、それが機能することです。たぶん遅くて、私はばかげた瞬間を過ごしていますが、「require('cfg/config');」べきではありません。「require('../cfg/config.php');」と書かれています。?
また、index.php のルートを使用している場合は、「require('func/function_1.php');」うまくいかないはずですよね?
リモートサーバーを4回チェックしましたが、おそらく1つか2つの漂遊ファイルがあったと思います...ありません。2 つの require ステートメントが異なるベース パスを持つにはどうすればよいでしょうか.....?
これを引き起こす可能性のあるコードスニペットを知っている人はいますか? 私はいくつかの $_SERVER 変数を使用していますが、それらのいずれも変更していないようです....!?
「ファイルは、指定されたファイル パスに基づいてインクルードされます。ファイル パスが指定されていない場合は、指定された include_path に基づいてインクルードされます。ファイルが include_path で見つからない場合、include は最終的に、呼び出し元のスクリプト自体のディレクトリと現在の作業ディレクトリをチェックインしてから失敗します。 " はっきりと言うとinclude dirname(__FILE__) . '/path/to/file.php';
、この混乱を避けることができます。– Dコーダー