为什么我不能在PHP中这样做

时间:2011-04-10 13:00:42

标签: php html

<?php 
if(isset($row['status']) AND 
  if($row['status']=="pending"))  
{ 
?>
<span class="pending">Pending</span>
<?php } ?>
  

解析错误:语法错误,意外   C:\ Program中的T_IF   文件\的EasyPHP-5.3.6.0 \ WWW \ V0.3 \图\ friendships.php   在第70行

5 个答案:

答案 0 :(得分:7)

因为这不是编写条件的方式,所以在PHP中:必须使用条件表达式(可以包含多个子表达式,使用||和/或&&)< / em>在if()的括号之间 - 而不是使用两个ifs:

if ( isset($row['status']) && $row['status']=="pending" ) {
   // do something
}


您可能需要阅读本手册的几个有趣部分:

答案 1 :(得分:2)

您不能将IF标记放在另一个IF标记内。像这样改写:

<?php if(isset($row['status']) && $row['status']=="pending")  { ?><span class="pending">Pending</span><? } ?>

答案 2 :(得分:1)

如果你的情况,你有额外的。它应该是这样的

<?php if(isset($row['status']) AND ($row['status']=="pending"))

if表达式

中不能有另一个if语句

答案 3 :(得分:1)

您只需要使用AND

<?php 
  if(isset($row['status']) AND $row['status']=="pending")  : 
?>
   <span class="pending">Pending</span>

<?php endif; ?>

删除额外的IF。并考虑使用替代控制结构,在混合HTML和PHP时更容易阅读

http://php.net/manual/en/control-structures.alternative-syntax.php

答案 4 :(得分:0)

因为您无法在另一个if语句的条件下嵌套if语句,因为if语句是语句而不是< em>表达式if语句只接受表达式

你可能只想要这个:

if (isset($row['status']) && $row['status'] == 'pending')