[英]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.