転載元: http://blog.sina.com.cn/s/blog_4ce89f200100twbl.html
http://blog.sina.com.cn/s/blog_815611fb0101cqgy.html
今日会社でソースコードを勉強していたら、set_include_path(dirname(__FILE__)); のようなコード行を見つけて、とても困惑しました。そこで、Baidu で検索したり、php.net のマニュアルを見たりしましたが、それでも何をするのかよくわかりませんでした。
偶然別のコードを見て、インスピレーションを受けてテストしてみたところ、予想通りでした。
ここで要約します:
まず第一に、set_include_path 関数は、スクリプト内の PHP.ini の include_path を動的に変更します。
この include_path は、以下の include と require のパス範囲に限定することも、事前に定義することもできます。
は次のようなものです:
この値を設定しない場合は、完全なパスを記述する必要があるかもしれません:
include("123/test1.php") );
include("123/test2.php"); ("123/test5.php");
?>
外部ファイルですが、 set set_include_path("123/") の場合は、代わりに次のコードを使用できます。
set_include_path("123/");
include("test1.php");
include( "test3. php"); というのは、 include や require
が動作すると、実行時に include_path で指定されたパスに移動してインポートするファイルを探します。 これでパフォーマンスが最適化されるかどうかはわかりませんが、いくつかのコードを節約できることは確かです。はは〜
最初は、このフォルダーにファイルを 1 つだけ含めたので、追加しても追加しなくても同じだろうと思っていました。
その後、ついに謎が分かりました!残念なのは、私のような記事がインターネット上に存在しないことです...同じ記事が何度も再投稿されています。
この関数は 1 つのフォルダーを定義するだけでなく、多数のフォルダーを定義することもできます。以下に示すように、初期化関数を作成します。
functionInitialize(){
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:php5pear;core/;app/;admin/;lib/;include/;data/;cache/
ねえ、別の .;C があることがわかりました。 php5pear;何が起こっているのでしょうか? 実際、何も書かずに include_path のデフォルト値を出力すると、それが...;C:php5pear;インポートされたファイルにアクセスできるようになります。
さらに多くのフォルダーが読み込まれる場合は、ファイル名を直接記述するだけです。
しかし、最初の質問と同じように、なぜ当社のコードは他の人のコードと異なるのでしょうか? ' を使用して ' ‐ ‐ ‐‐ ‐‐ ‐ に フォルダー内のファイルは、指定したフォルダーに見つからないというエラーを報告します。 other最初に、別の方法で出力しましょう。 $include_value; include("test4.php" ; 'test1.php' をインクルード用に開きます (include_path='D:AppServwww') in
D:AppServwwwtest.phpon line6
そして、次のこともわかりました .;C :php5pear; が置き換えられました。したがって、これを使用する場合、フォルダー内にファイルが導入されていない場合は、 get_include_path () を追加する必要があります。 Windows の Include のパス:
最後に、別の方法も使用できることを言いたいと思います。つまり、最も、つまり、最も、つまり、最も、つまり、最も、つまり、最も、最も、最も、つまり、最も、最も、最もです。 (
'include_path',
'ディレクトリ名'
);
さらに、次の 2 つの点に注意してください。指定された
の場合、要求されたファイルはこの名前のファイルが現在のページ ディレクトリに存在する場合、デフォルトで現在のディレクトリ内のファイルがインポートされます。
上記は、require の内容を含む set_include_path の使用法を紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。