У меня есть класс формы со статической переменной внутри, которая регистрирует ошибки. Например:
<?php
class form {
//this is our array to hold fields that have errored so we can apply an error class to the input fields
static public $errors = array();
static public function setError($error) {
self::$errors[] = $error;
}
static public function parseErrors() {
$output .= '<ul>';
foreach(self::$errors as $message) {
$output .= '<li>'.$message.'</li>';
}
$output .= '</ul>';
return $output;
}
//... other functions
}
?>
Затем, чтобы регистрировать ошибки из ваших функций проверки, вы можете сделать что-то вроде этого:
<?php
function myvalidate($value) {
// if this validation fails
form::setError('Field is required');
}
?>
Тогда просто вызовите parseErrors, чтобы выплюнуть ваши ошибки. Обратите внимание, что это всего лишь фрагменты. У меня действительно есть класс logger, который взаимодействует с классом формы, изменил его для консолидации.
Я предпочитаю делать что-то подобное, чем использовать GLOBALS, это может привести к очень быстрому беспорядку, если использовать GLOBALS или SESSION в этом отношении, что является еще одним вариантом.