Преобразуйте цепочку различных условий if .. elseif в регистр - PullRequest
0 голосов
/ 26 сентября 2018

Простое любопытство, есть ли способ преобразовать следующее в цикл переключения?

PHP:

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    $error = array('type' => 'error', 'value' => 'email');
}
elseif (!preg_match($regex_name, $username)) {
    $error = array('type' => 'error', 'value' => 'username');
}
elseif (!preg_match($regex_name, $firstname) && preg_match($regex_name, $lastname)) {
    $error = array('type' => 'error', 'value' => 'name');
}
elseif ($password !== $password_conf) {
    $error = array('type' => 'error', 'value' => 'password');
}
elseif (checkdate($birthday_d, $birthday_m, $birthday_y) == false) {
    $error = array('type' => 'error', 'value' => 'date');
}
else {
    $error = array('type' => 'success');
}

Спасибо.

1 Ответ

0 голосов
/ 26 сентября 2018

Просто для полноты, пример того, как будет выглядеть преобразование в коммутатор:

switch(true) {
    case (!filter_var($email, FILTER_VALIDATE_EMAIL)):
          $error = array('type' => 'error', 'value' => 'email');
          break;
    case (!preg_match($regex_name, $username)):
          $error = array('type' => 'error', 'value' => 'username');
          break;
    //...   
}

В конце это просто сложный способ сказать if this is true.

...