include_path の下を検索し、現在実行中のスクリプトが配置されているディレクトリに相対的な include_path の下を検索します。たとえば、include_path は .、現在の作業ディレクトリは /www/ で、スクリプトには include/a.php チュートリアルを含める必要があり、ファイル内に include "b.php" という文があり、その後で検索する順序になります。 b.php は最初に /www/ で、次に /www/include/ が続きます。ファイル名が ./ または ../ で始まる場合、現在の作業ディレクトリを基準とした include_path の下でのみ検索されます。
ファイル構造は以下のようになります
----a.php
---include/b.php
----include/c.php
a.php の場所
「include/b.php」をインクルード;
?>
-------------------------------------
b.php
「c.php」を含める;
インクルード 'include/c.php';
?>
--------------------------
c.php
エコー 'c.php';
?>
--------------------------
どちらも正しく実行でき、b.php の 2 つの異なるインクルード パスが実行可能であり、インクルード ファイルのインクルード検索の方法に従って c.php を見つけることができることを示しています。
ただし、最善の方法は絶対パスを使用することです。絶対パスを使用すると、PHP カーネルはインクルード パスでファイルを 1 つずつ検索する必要がなく、パスを通じてファイルを直接ロードします。これにより、コードの効率が向上します。処刑
define('root_path',dirname(__file__));
root_path.'/c.php'を含める;
?>
結論:
明らかに、インクルードの背後にあるパスの形式と PHP インクルード パスは、プログラムのパフォーマンスに影響を与えます。インクルードのパフォーマンスは、遅いものから速いものへと分類されます。
「a.php」を含む < 「./a.php」を含む < 「/fullpath/a.php」を含むコードでは、絶対パスを使用してファイルをインクルードすることが最良の選択です。これにより、PHP カーネルは、インクルード パスでファイルを 1 つずつ検索する必要がなく、パスを通じてファイルを直接ロードします。
したがって、プロジェクトのパブリック ファイル内のプロジェクト ルート ディレクトリの絶対パスの定数を定義し、この定数をすべてのインクルード パスの前に置き、プロジェクト内のすべてのインクルードが絶対パスを使用するようにする必要があります。プログラムのパフォーマンスが向上するだけでなく、相対パスに起因するトラブルも軽減されます。
参照コード (emlog より):
define('emlog_root', dirname(__file__));
emlog_root をインクルードします。
プロジェクトのインクルード 'test.php' 形式で多数の相対パスを使用しており、それらを大量に変更するのが難しい場合は、php インクルード パス内のパスを減らして、確実な動作を改善してみてください。パフォーマンスも含めて。インクルード パス内のパスが少ないほど、PHP がファイルの検索に費やす時間が短縮されるためです。
http://www.bkjia.com/PHPjc/632306.html