1

を実行して下phpinfo()Configurationカテゴリを見ると、ローカル値とマスター値を持つ、PHP Coreというタイトルのディレクティブが表示されます。include_path

この場合、私のローカル値はに設定されます

。:
。/含む:
../含む:
/ usr / share / php:
/ usr / share / php / smarty:
/ usr / share / pear

私のマスター値はに設定されています

。:
/ usr / share / php:
/ usr / share / pear:
/ usr / share / php / pear:
/ usr / share / php / smarty

これがどのように機能するかを学ぼうとしている理由は、私が取り組んでいるシステムに「Smarty.class.phpSmarty Templating Engine」を使用している人なら誰でもよく知っていると思われる、というタイトルのファイルがあるためです。

PHPファイルの1つには、次のものが含まれています。

require_once( "Smarty.class.php");
require_once( "user_info_class.inc");

このファイルuser_info_class.incは、インクルードを作成するファイルと同じディレクトリにあります。これは私にとって完全に理にかなっており、私が常にファイルを参照する方法です。Smarty.class.phpファイルを開きたいと思い、同じディレクトリにあると想定しましたが、そうではありませんでした。

少し掘り下げた後、私はそれらのphp_ini変数を発見し、最終的にディレクトリ内のファイルを見つけることができましたusr/share/php/smarty/

したがって、インクルードを作成するときは、のローカル値とマスター値の間のある種の順序に従うように見えますinclude_path

私の推論がこれまでのところ正しいと仮定して、誰かがPHPが含まれるファイルを検索する順序を説明できますか?

4

1 に答える 1

1

グローバル値は基本的にphp.iniで設定されているものです。ローカル値は、現在使用されている値です。ローカル値はマスター値を完全に上書きします。

マニュアルによると、PHPはinclude_path設定で指定された順序でパスをチェックします:http://php.net/manual/en/ini.core.php#ini.include-path

于 2010-05-05T16:11:32.353 に答える