0

我想用来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-输出

<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>

感谢您的
帮助

4

2 回答 2

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

于 2012-09-17T14:32:01.037 回答
1

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

于 2012-09-17T14:33:45.207 回答