簡體   English   中英

我怎么知道PHP將使用哪個包含路徑?

[英]How do I know which include path will be used in PHP?

當我運行phpinfo()並查看PHP Core下的Configuration類別時,我看到一個名為include_path的指令,該指令具有本地值和主值。

在這種情況下,我的本地值設置為

.:
./include:
../include:
/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.php ,對於使用Smarty模板引擎的人來說,我相信這聽起來非常熟悉。

其中一個PHP文件包括以下內容:

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

文件user_info_class.inc與包含include的文件位於同一目錄中,這對我來說很有意義,這也是我始終引用文件的方式。 我決定我想打開Smarty.class.php文件,並假設它會在同一目錄中,但事實並非如此。

經過一些挖掘之后,我發現了那些php_ini變量,最終能夠在usr/share/php/smarty/目錄中找到該文件。

因此,似乎在進行包含時,它會在include_path的Local和Master值之間遵循某種順序。

假設到目前為止我的推論是正確的,那么有人可以解釋一下PHP搜索要包含的文件的順序嗎?

全局值基本上是php.ini中設置的值。 本地值是當前正在使用的值。 本地值將完全覆蓋主值。

根據手冊,PHP按照在include_path設置中指定的順序檢查路徑: http : //php.net/manual/en/ini.core.php#ini.include-path

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM