今日、set_include_path と get_include_path を使用しましたが、最初は少し混乱しましたが、次の結論が得られました。
1. get_include_path
この関数は、現在の include_path の値を取得するために使用されます。
string get_include_path (void)
たとえば、windos で XAMPP 出力を使用します: .;D:xamppphpPEAR
() 関数は、PHP.ini 内の include_path を動的に変更します。スクリプト。
include_path は、include と require のパス範囲に制限 (事前定義) できます。
(1) include_path 値が設定されていない場合は、完全なパス を記述する必要がありますが、これにより多くの外部ファイル
が導入されます。次に例を示します。
<strong>include('123/test1.php'); include('123/test2.php');</strong>
include_path 値 を設定すると、は次のコードに置き換えることができます。
set_include_path('123/'); include('test1.php'); include('test2.php');include や require を実行すると、include_path で指定したパスからインポートするファイルが検索されるため、パフォーマンスが最適化されているかはわかりませんが、コードを節約できます。 。もちろん謎もあるよ!
(3) この機能は 1 つのフォルダーだけでなく、多数のフォルダーを定義することもできます。次のように、初期化関数を記述します。
function initialize(){ set_include_path(get_include_path().PATH_SEPARATOR . 'core/'); set_include_path(get_include_path().PATH_SEPARATOR . 'app/'); set_include_path(get_include_path().PATH_SEPARATOR . 'admin/'); set_include_path(get_include_path().PATH_SEPARATOR . 'lib/'); set_include_path(get_include_path().PATH_SEPARATOR . 'include/'); set_include_path(get_include_path().PATH_SEPARATOR.'data/'); set_include_path(get_include_path().PATH_SEPARATOR.'cache/');}そのパスは次のようになります。
.;C:\php5\pear;core/;app/;admin/;lib/;include/;data/;cache/前の .;C:php5pear; は、php.ini の include_path のデフォルト値です。この考え方に従って、多くのフォルダーをロードする場合は、ファイル名を直接記述することができます。
複数の include_path を同時に設定する場合、PHP 定数 PATH_SEPARATOR を使用してそれらを区切ることができます。 Unix 系システムでは、PATH_SEPARATOR は「:」ですが、Windows システムでは、PATH_SEPARATOR の値は「;」です。 例:
set_include_path(implode(PATH_SEPARATOR, array( realpath(APPLICATION_PATH . '/../lib'), get_include_path(), )));
(4) include_path にディレクトリを指定しているが、必要なインクルードファイルが lib ディレクトリに見つからず、たまたまカレントページのディレクトリに存在した場合この名前のファイルが見つかると、そのファイルが現在のディレクトリに含まれるように変換されます。
例:
set_include_path('projectName/home/Action/lib');
(5) 指定した場合複数のディレクトリが include_path として設定されており、インクルードする必要があるファイルがこれらのディレクトリ内に同じ名前のファイルを持つ場合、PHP は include_path を設定するときに、最もランクの高いディレクトリ内のファイルを使用することを選択します。