这是我收到的错误:
Fatal error: Class 'Validate' not found in C:\xampp\htdocs\final_project\validate.php on line 5
这是我的PHP代码:
<?php
require_once 'Validate.php';
foreach($_POST as $name => $value)
{
$valid = Validate::string($value);
}
?>
我不明白我错过了什么。我为validate包安装了--alldeps,而PEAR包含路径也是正确的。 Validate_CA没有给我任何错误,但它也没有正确验证。
答案 0 :(得分:2)
PHP按优先顺序解析include_path
。这意味着当相对路径传递给require()
,include()
,fopen()
,file()
,readfile()
或file_get_contents()
时,PHP将开始查找在第一个目录中。如果找到该文件,则包含该文件。如果没有,它将继续下一个并重复该过程。
考虑以下包含路径:
include_path = ".:/php/includes:/php/pear"
以及以下PHP脚本:
<?php
require('MyFile.php');
PHP将按以下顺序查找MyFile.php
:
./MyFile.php
(当前目录)/php/includes/MyFile.php
/php/pear/MyFile.php
您无法加载Validate.php
的原因是您当前目录中已有一个名为validate.php
的文件(请记住,路径在Windows上不区分大小写,但在UNIX上)。因此,PHP包含您的文件而不是与PEAR::Validate
对应的文件,因为您的文件在PEAR之前以include_path
优先顺序找到。
只需将文件重命名为validate.php
之外的其他内容即可解决问题。如果它仍然不起作用,请尝试回显get_include_path()
的返回值,以确保它确实设置正确。