簡體   English   中英

在 php.ini 中設置包含路徑后怎么辦?

[英]What to do after setting include path in php.ini?

請賜教我這一點。 我嘗試編輯 php.ini 文件,在它說 include_path 的部分:

include_path = ".;C:\php_includes\home_made"

之后我取消注釋,保存並從 wamp 托盤圖標重新啟動所有服務。

我在那個文件夾上有一堆自制的課程。 我想象我可以在我制作的每個 php 文件上做這樣的事情。 我將能夠使用這些類中的函數:

$strings = new strings();
echo $strings->clean('bla$#@D232)*/');

但我錯了,因為它返回了這個錯誤:

Fatal error: Class 'strings' not found in C:\wamp\www\dw_fs\phpinfo.php on line 1

在 php.ini 中包含路徑我實際上得到了什么好處。 我該如何使用它? 請賜教。

它允許您使用 include() 和 require() 包含文件,而無需指定完整路徑。

來自手冊: http://www.php.net/manual/en/ini.core.php#ini.include-path

指定 require()、include()、fopen()、file()、readfile() 和 file_get_contents() 函數查找文件的目錄列表。 格式類似於系統的 PATH 環境變量:在 Unix 中用冒號分隔的目錄列表或在 Windows 中用分號分隔的目錄列表。

PHP 在查找要包含的文件時分別考慮包含路徑中的每個條目。 它將檢查第一個路徑,如果找不到,則檢查下一個路徑,直到找到包含的文件或返回警告或錯誤。 您可以在運行時使用 set_include_path() 修改或設置包含路徑。

您仍然需要包含您的string class。 僅僅調用它是行不通的——但如果文件在包含路徑中,那么您實際上不需要指定文件的完整路徑。

如果您想讓 PHP 為您自動包含文件,請閱讀Autoloading Classes

include_path 只允許include沒有完整路徑的文件:

include("strings.php");   // instead of "c:/includes/strings.php"

除了設置include_path之外,您還想在示例中使用autoloader

spl_autoload_extensions('.php');
spl_autoload_register("spl_autoload");

然后,您可以實例化字符串 class 而無需手動包含所需的 class 文件。

你有strings class 嗎?

字符串 class 是String

暫無
暫無

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

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