请赐教这个。我尝试编辑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中包含路径实际上获得了什么好处。我该如何使用它?请赐教。
答案 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
。