2012-04-28 4 views
0

Я хочу изменить этот пример кода, чтобы все эти условия оценивались одновременно. Если более одного условия истинно, несколько аргументов могут быть переданы функции «signup».Оценка нескольких условий сразу с использованием PHP

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

Любая помощь, указывающая на меня в правильном направлении, была бы замечательной.

if ($this->form_validation->run() == FALSE) { 
     $this->signup(); 

    } else if ($this->membership_model->check_field('username',$this->input->post('username'))) { 

     $this->signup("An account with the username you've entered already exists."); 

    } else if ($this->membership_model->check_field('email_address',$this->input->post('email_address'))) { 

     $this->signup("An account with the e-mail you've entered already exists."); 

    } 

ответ

2

Вы можете поместить все ошибки/неисправности в массив и передать это значение $this->signup().

if ($this->form_validation->run() == FALSE) { 
    $this->signup(); 
} 
else 
{ 
    $errors = array(); 
    if ($this->membership_model->check_field('username',$this->input->post('username'))) 
     $errors[]= "An account with the username you've entered already exists."; 
    if ($this->membership_model->check_field('email_address',$this->input->post('email_address'))) 
     $errors[]= "An account with the e-mail you've entered already exists."; 

    $this->signup($errors); 
} 
+0

Вы также можете проверить [ошибки проверки формы формы] (http://codeigniter.com/user_guide/libraries/form_validation.html#settingerrors). – Zombaya

+0

Thx. Это похоже на хороший подход. Использование func_get_args(); в функции регистрации, когда массив ошибок передается, каждый элемент считывает отдельный аргумент или как один массив. – jsuissa

+0

Вы должны проверить документы для этого или просто проверить его (например, с помощью var_dump()). Вы также можете указать параметр signup() для начала. Кажется странным использовать func_get_args(). – Zombaya

0

Используйте & & оператор

а = 1; b = 2; if (a == 1 & & b == 2) { echo "это будет отображаться на странице"; }

+0

Это будет работать, за исключением того, что результаты для каждого условия отличаются. Также им не все должно быть правдой. – jsuissa

+0

Gotcha - Я не заметил небольших изменений. – Webnet

Смежные вопросы