使用IF和Echo更正PHP语法


Correct PHP Syntax with IF and Echo

我希望能得到你们的帮助。下面的代码有效,但我怀疑这是否是编写语法的好方法。尤其是因为它将需要大量的代码。

我想做的是创建一个列表,只有当项目有值时才会填充该列表。我已经指定了变量是否有值(我认为这部分代码也可能需要一些工作,但这是另一个问题)。我找到了一种显示或隐藏列表中项目的方法。但我认为它没有效率。这就是我需要帮助的地方。

            <?php
                if(empty($orderNum))
                    {
                    echo "<li><a href='#' title='Brodit'>Tomte</a></li>";
                    }
                else
                    {
                    echo "<li><a href='unordered.php?SupName=2&SupStatus=3' title='Brodit'>Order ("; echo "$orderNum"; echo ")</a></li>";
                    }
            ?>

您可以使用php模板中广泛使用的php替代语法,并在zend手册和symfony:等文档中建议使用

<?php if(empty($orderNum)): ?>
    <li><a href="#" title="Brodit">Tomte</a></li>
<?php else: ?>
    <li><a href="unordered.php?SupName=2&SupStatus=3"title="Brodit">
      Order (<?php echo $orderNum; ?>)</a>
    </li>
<?php endif; ?>
<?php
  if(empty($orderNum)){
    echo "<li><a href='#' title='Brodit'>Tomte</a></li>";
  } else {
    echo "<li><a href='unordered.php?SupName=2&SupStatus=3' title='Brodit'>Order ({$orderNum})</a>  </li>";
  }
?>

您可以使用"foo {$var} bar"而不是"foo ".$var." bar"。这(在我看来)更优雅。

如果HTML代码变长,我更喜欢:

<?php if(empty($orderNum)): ?>
    <li><a href="#" title="Brodit">Tomte</a></li>
<?php else: ?>
    <li><a href="unordered.php?SupName=2&SupStatus=3"title="Brodit">
      Order (<?php echo $orderNum; ?>)</a>
    </li>
<?php endif; ?>

要在已经回答的内容上添加另一个替代方案,您可以关注HTML而不是PHP:

 <?php if(empty($orderNum)) { ?>
     <li><a href='#' title='Brodit'>Tomte</a></li>
 <?php } else {?>
     <li><a href='unordered.php?SupName=2&SupStatus=3' title='Brodit'>Order ("<?php echo $orderNum;?>")</a></li>";
 <?php }?>

如果你想利用你的HTML编辑器(语法验证、自动完成…),这尤其有用。我会为大块的HTML和与集成商合作时选择这种语法,因为他们不太可能破坏PHP部分。

 <?php
            if(empty($orderNum))
                {
                echo "<li><a href='#' title='Brodit'>Tomte</a></li>";
                }
            else
                {
                echo "<li><a href='unordered.php?SupName=2&SupStatus=3' title='Brodit'>Order (". $orderNum .")</a></li>";
                }
        ?>

您可以做的一件事是将字符串分配给一个变量,然后在末尾有一个echo语句。您也可以在双引号中进行变量替换。例如:

"订单($orderNum) "