У меня есть два условия if и one else, но условие else не работает и всегда показывает - PullRequest
2 голосов
/ 28 июля 2011

Я хочу отобразить либо a, b, либо c. То, что происходит сейчас, всегда отображается c, даже если выполняется одно из первых двух утверждений.

Спасибо!

<?php

if(isset($_SESSION['member_email'])){
  echo 'a'; 
}

if ($user->isAuthorized())
{
  echo 'b'; 
}

else  {
  echo 'c';
}

?>

Ответы [ 4 ]

3 голосов
/ 28 июля 2011

В этом случае вы можете получить

  • a, b
  • a, c
  • b
  • c

попробуй

if(isset($_SESSION['member_email'])){
  echo 'a'; 
} elseif ($user->isAuthorized()) {
  echo 'b'; 
} else  {
  echo 'c';
}
2 голосов
/ 28 июля 2011

Вам не хватает еще одного между разделами 'a' и 'b':

if (...) {
   a
} else if (...) {
   b
} else if (...) {
   c
}

- это базовая структура, которую вы хотите. Это выполнит только ОДИН из разделов a / b / c. На данный момент ваш код выполняет раздел 'a', а затем выполняет разделы b OR c.

1 голос
/ 28 июля 2011

Подумайте об изменении 2-го if на else if, и это должно решить вашу проблему, если в случае сбоя оператора if он переходит к первому, который он может найти в цепочке (если есть)

0 голосов
/ 28 июля 2011

Вы должны использовать elseif: http://www.php.net/manual/en/control-structures.elseif.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...