Использую я конструкцию if и практически всегда она у меня сильно разрастается, ведь нужно к примеру проверить все ли поля заполнены на входе, потом все ли имеют нужную длину и т.д. В итоге в условии накапливается длинная строка всякого всего. Но рассматривая код мастеров, я заметил, что условия всегда у них короткие. Но не разбивать же на 10 конструкций то, что можно сделать одной. На что нужно обратить внимание, чтобы не взращивать такие длинные условия? Спасибо!
можно поднять флаг ошибки =) типа $error=true; если вам надо проверить несколько полей то можно засовываать их в фи через AND, но тогда вы не сможете сказать человеку где именно он неправильно ввёл.
напишите один раз функции-заготовки или класс для проверки. так называемый валидатор. или возьмите готовый. тогда все проверки надо будет описывать коротко и в одну строку для каждого поля. валидатор по имени поля проверяет кадлое поле на те проверки которые укажете валидатору - пустое/непустое, формат значения, диапазон значения, регулярка и т.д. и на выходе массив с ошибками для каждого поля. или пустой массив - если форма заполенна корректно.
Однозначно, свой! runcore, спасибо! Вы направили мою мысль как-раз в искомое русло. Отаетили на мой вопрос.
Кажется, такая реализация свою задачу выполняет. Может, есть, на что указать с целью улучшения? Код (Text): class Validate { private $username; private $email; public $message = ''; public function Valid_username($username) { $this->username = $username; if (is_string($this->username)) { if (strlen($this->username) > 50) { $this->message = "Cлишком длинное имя!\n"; return FALSE; } elseif (strlen($this->username) < 3) { $this->message = "Cлишком короткое имя!\n"; return FALSE; } elseif (!preg_match('/^(\w|[а-яА-Я-]){3,50}$/i', $this->username)) { $this->message = "Недопустимые символы в имени!\n"; return FALSE; } else { $this->message = "Имя прошло проверку!\n"; return TRUE; } } elseif (!is_string($this->username)) { $this->message = "Неверный формат данных!\n"; return FALSE; } } public function Valid_email($email) { $this->email = $email; if (is_string($this->email)) { if (!preg_match('/^(\w|[-.]){3,30}@(\w|[-.]){3,30}$/i', $this->email)) { $this->message = "Недопустимые символы в имени!\n"; return FALSE; } else { $this->message = "Имя прошло проверку!\n"; return TRUE; } } elseif (!is_string($this->email)) { $this->message = "Неверный формат данных!\n"; return FALSE; } } }