Foreach echo没有空变量值

时间:2012-09-17 14:30:06

标签: arrays variables foreach var

我想使用foreach来回显所有图片路径,但是当变量为空$bild_5时,不应该显示任何HTML代码。

我的代码:

<html>

<?php

// var
$url    = "http://www.URL/assets/";

$bild_1 = $url . "bild-1.jpg"; 
$bild_2 = $url . "bild-2.jpg"; 
$bild_3 = $url . "bild-3.jpg"; 
$bild_4 = $url . "bild-4.jpg"; 
$bild_5 = ""; 

// array
$bilder = array ("$bild_1", "$bild_2", "$bild_3", "$bild_4", "$bild_5");
?>

<ul>
    <!-- foreach / Template -->
    <?php foreach($bilder as $bild) { ?>    

        <li><img src="<?php echo $bild; ?>"</li>

    <?php } ?>
</ul>

</html>

HTML-OUTPUT

<html>

<ul>                
   <li><img src="http://www.URL/assets/bild-1.jpg"</li>
   <li><img src="http://www.URL/assets/bild-2.jpg"</li>
   <li><img src="http://www.URL/assets/bild-2.jpg"</li>
   <li><img src="http://www.URL/assets/bild-4.jpg"</li>
   <li><img src=""</li>    // Don´t display this HTML code; ( $bild_5 = ""; )
</ul>

</html>

感谢您的帮助 Ogni

2 个答案:

答案 0 :(得分:1)

您可以使用continue跳过

<?php foreach($bilder as $bild) { ?>   
       <?php if (empty($bild)) continue; ?> 

        <li><img src="<?php echo $bild; ?>"</li>

<?php } ?>

我还建议您在混合PHP和HTML时使用控制结构的替代语法。它更容易阅读

<?php foreach($bilder as $bild) : ?>    

        <li><img src="<?php echo $bild; ?>"</li>

<?php endforeach; ?>

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

答案 1 :(得分:1)

使用继续;如上所述,或者只是让array_filter($bilder);在您的foreach之前运行