我有两个if和一个else条件,但else条件不起作用并且总是显示

时间:2011-07-27 21:41:40

标签: php if-statement

我想要显示a,b或c。现在发生的事情是c总是出现,即使满足前两个if语句中的一个。

谢谢!

<?php

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

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

else  {
  echo 'c';
}

?>

4 个答案:

答案 0 :(得分:3)

在这种情况下,您可以获得

  • A,B
  • A,C
  • B'/ LI>
  • C

if(isset($_SESSION['member_email'])){
  echo 'a'; 
} elseif ($user->isAuthorized()) {
  echo 'b'; 
} else  {
  echo 'c';
}

答案 1 :(得分:2)

你错过了'a'和'b'部分之间的其他内容:

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

是您想要的基本结构。这只会执行一个a / b / c部分。现在,你的代码执行'a'部分,然后执行b OR c部分。

答案 2 :(得分:1)

考虑将第二个if更改为else,这样可以解决你的问题,如果一个if语句失败,它会转到它可以在链中找到的第一个(如果有的话)

答案 3 :(得分:0)