Пакет проверки PHP PEAR - Неустранимая ошибка: класс «Проверка» не найден - PullRequest
1 голос
/ 02 февраля 2010

Это ошибка, которую я получаю:

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);
 }
 ?>

Я не понимаю, чего мне не хватает.Я установил --alldeps для пакета проверки, и путь включения PEAR также правильный.Validate_CA не дает мне никаких ошибок, но также не проверяет правильность.

1 Ответ

2 голосов
/ 02 февраля 2010

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(), чтобы убедиться, что оно действительно установлено правильно.

...