この記事は、http://blog.sina.com.cn/s/blog_4ce89f200100twbl.html から転載されています
まず、set_include_path 関数は、スクリプト内の PHP.ini の include_path を動的に変更します。
この include_path については、次の include および require パスの範囲に制限することも、事前定義することもできます。
は次のようなものです:
この値を設定しない場合は、いくつかの完全なパスを記述する必要があるかもしれません:
< ;?php
include("123/test1.php");
include("123/test3.php") ;
require( "123/test5.php");
?> ;
をご紹介します多くの外部ファイルがありますが、set_include_path("123/") を設定した場合は、代わりに次のコードを使用できます。
set_include_path("123/");
include("test1. php");
include("test2.php");include("test3.php");
が必要( "test4.php");
?> include または require 操作が実行されると、指定されたパスがinclude_path でインポートするファイルが検索されますが、これによってパフォーマンスが最適化されるかどうかはわかりませんが、確かに一部のコードは保存できます。はは〜 なので最初は、このフォルダーにファイルを1つしか入れていないので、追加してもしなくても同じだろうと思っていました。
後になって、ついにその謎が分かりました!残念なのは、私のような記事がインターネット上に存在しないことです...同じ記事が何度も再投稿されています。 つまり、この関数は 1 つのフォルダーを定義するだけでなく、多数のフォルダーを定義することもできます。以下に示すように、初期化関数を作成します。
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_SEPARA TOR."data/");
set_include_path(get_include_path().PATH_SEPARATOR."cache/");
}
そのパスは次のようになります: .;C:php5pear;core/ ;アプリ/; admin/;lib/;include/;data/;cache/
ねえ、私たちの前に別のものがあることがわかりました。;C:php5pear;実際、何が起こっているのでしょうか? include_path のデフォルト値を何も書かずに出力するだけで、それが正しいことがわかります。;C:php5pear; これにより、インポートされた任意のファイルに移動できるようになります。
さらに多くのフォルダーが読み込まれる場合は、ファイル名を直接記述するだけです。
しかし、最初の質問と同じように、なぜ私たちの会社のコードは他の人のコードと違うのでしょうか? __FILE__));
他のフォルダーからファイルをインポートすると、指定したフォルダーにそれらが見つからないというエラーが報告されます。 まず、別の方法で出力しましょう:
set_include_path(ディレクトリ名( __FILE__));
$include_value = ini_get('include_path');
echo $include_value;
? >
結果は次のようになります: D:AppServwww
include("test4.php");
でもを探してみるとエラーレポート:
警告: include() [
function.include]:失敗
opens 'test1.php' for inclusion(include_path='D:AppServwww') inD:AppServwwwtest.phpon line6
そして、.;C:php5pear; が置き換えられていることがわかりました。したがって、これを使用する場合、1 つのフォルダーにファイルを導入するだけではない場合は、get_include_path().PATH_SEPARATOR を追加する必要があります get_include_path() は、現在の include_path を取得するためのデフォルト値です
。
PATH_SEPARATOR は定数であり、これは include のパス境界であり、UNIX と Linux では同じです: 最後に、別の方法を使用することもできます: 最も独創的な方法:
ini_set(
'include_path', 'ディレクトリ名' );
必要なファイルが指定されたディレクトリに見つからず、この名前のファイルが現在のページディレクトリに存在する場合、デフォルトで現在のディレクトリ内のファイルがインポートされます。
複数のディレクトリが include_path として指定されており、インクルードする必要があるファイルがこれらのディレクトリに同じ名前のファイルを持っている場合、PHP は先頭の include_path 設定を使用することを選択します。ディレクトリ。
上記では、set_include_path と get_include_path の詳細な使い方を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人の参考になれば幸いです。