последовательный if's в PHP

Сейчас я выполняю некоторую проверку в PHP, и я запускаю условные выражения, например:


if ($this->email->isValid($email))
return false;
if ($this->username->isValid($username))
return false;

ЭСТ ..

Есть ли хороший способ сделать это? Или я просто запускаю десять операторов If, подобных приведенным выше? Я не могу использовать switchявно, но я ищу такой тип решения.

PS .. Я использую Zend Framework для проверки

php,oop,switch-statement,if-statement,

0

Ответов: 10


4

Вы могли бы их сделать так:

if(cond1||
   cond2||
   cond3||
   cond4)
{
  return false;
}

3

Делая что-то подобное, называется оговоркой Хранителя. Он может быть улучшен, поэтому клаузулы, возвращающие одно и то же значение, должны быть сгруппированы вместе.

if ($this->email->isValid($email) || $this->username->isValid($username))
{
    return false;
}

Или как это, если их много (Кстати, как я форматирует if, это просто так, чтобы читать лучше, любой другой способ тоже должен быть прекрасен)

if (
    $this->email->isValid($email) || 
    $this->username->isValid($username) || 
    $this->somethingelse()
   )
{
    return false;
}

0

Если это данные из формы, взгляните на Zend_Form, как рекомендовано плакатом в другом вопросе

Я отправил некоторый пример кода, который детализирует добавление валидаторов для формирования элементов


0

Просто убедитесь, что вы положили наиболее очевидную валидацию наверху, поэтому, если она будет терпеть неудачу, она отключится, прежде чем она пройдет через каждое утверждение. Кроме того, мне не нравятся заявления без фигурных скобок, но тогда это только вопрос мнения.


0
if ($this->email->isValid($email) || 
    $this->username->isValid($username))
        return false;
PHP, OOP, включение заявление, если-заявление,
Похожие вопросы