在php.ini中设置包含路径后要做什么?

时间:2011-05-25 08:02:54

标签: php

请赐教这个。我尝试编辑php.ini文件,其中包含include_path:

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

之后我取消注释,保存并重新启动wamp tray icon中的所有服务。

我在该文件夹上有一堆自制的课程。我想我可以在我制作的每个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中包含路径实际上获得了什么好处。我该如何使用它?请赐教。

4 个答案:

答案 0 :(得分:2)

它允许您使用include()和require()包含文件,而无需指定完整路径。

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

  

指定目录列表   require(),include(),fopen(),   file(),readfile()和   file_get_contents()函数寻找   文件。格式就像系统一样   PATH环境变量:列表   用冒号分隔的目录   Windows中的Unix或分号。

     

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

答案 1 :(得分:2)

您仍然需要加入string课程。只是调用它是行不通的 - 但如果文件在include路径中,那么你实际上并不需要指定文件的完整路径。

如果您想让PHP自动包含这些文件,请阅读Autoloading Classes

答案 2 :(得分:1)

include_path只允许include个文件没有完整路径:

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

除了设置include_path之外,您在示例中要使用的是autoloader

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

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

答案 3 :(得分:1)

你有strings班吗?

字符串类为String