混合PHP和HTML代码

时间:2014-03-05 22:19:50

标签: php

在观看和谷歌搜索几个小时后,我无法弄清楚这一点。

<?php           
foreach ($myResults as $rowNumber => $myResult) {
if ($rowNumber<$numberOfResults/2) {
print "<h2>";
print render($myResult->field_field_item_category[0]['rendered']['#title']) ;       
print "</h2>";
}?>
  html code here

<?php 
 elseif ($rowNumber>$numberOfResults/2) {   
 print "<h2>";
 print render($myResult->field_field_item_category[0]['rendered']['#title']) ;      
 print "</h2>";
}
} ?>

3 个答案:

答案 0 :(得分:2)

您尝试在IF声明的结尾与ELSEIF

的开头之间回显HTML代码
if(something)
{
  // conditional code here
}

// do not put code here

elseif (somethingelse)
{
  // conditional code here
}

答案 1 :(得分:1)

<?php?>之间的部分被解释为PHP代码。其余的是纯HTML代码。

PHP(和任何语言)中的if() { }elseif() { }之间不能有任何关系,也不能是HTML代码。

elseif更改为if,它会有效。

答案 2 :(得分:1)

我假设您希望html code here块只显示第一个if测试是TRUE。如果是这种情况,请将html块之前的尾随}移到后面。

<?php           
  foreach ($myResults as $rowNumber => $myResult) {
    if ($rowNumber<$numberOfResults/2) {
      print "<h2>";
      print render($myResult->field_field_item_category[0]['rendered']['#title']) ;       
      print "</h2>";
?>
  html code here
<?php 
     }elseif ($rowNumber>$numberOfResults/2) {   
       print "<h2>";
       print render($myResult->field_field_item_category[0]['rendered']['#title']) ;      
       print "</h2>";
     }
  } 
?>

如果你想让html code here在if语句的中间移出<?php foreach ($myResults as $rowNumber => $myResult) { if ($rowNumber<$numberOfResults/2) { print "<h2>"; print render($myResult->field_field_item_category[0]['rendered']['#title']) ; print "</h2>"; }elseif ($rowNumber>$numberOfResults/2) { print "<h2>"; print render($myResult->field_field_item_category[0]['rendered']['#title']) ; print "</h2>"; } } ?> html code here

{{1}}

此外,缩进。这使得这样的错误来源更加明显。