在php.ini中设置include路径后要做什么


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-路径

指定目录列表,其中require()、include()和fopen(),file()、readfile()和file_get_contents()函数查找文件。格式类似于系统的PATH环境变量:中用冒号分隔的目录Unix或Windows中的分号。

PHP考虑查看时单独包含路径以包含文件。它会检查第一条路径,如果找不到它,检查下一个路径,直到它定位包含的文件,或者返回时带有警告或错误。您可以修改或设置包含运行时使用的路径set_include_path()。

您仍然需要包含string类。仅仅调用它是行不通的,但如果文件在include路径中,那么实际上不需要指定文件的完整路径。

如果你想让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");

然后,您可以实例化字符串类,而无需手动包含所需的类文件。

您有strings类吗?

字符串类为String