PHP For循环滑块仅渲染(如果不为空)

时间:2013-08-01 10:15:41

标签: php for-loop is-empty

我正在创建滑块并从主题选项中获取图像和链接。其中包含图像网址和链接网址的输入文件。

问题是当我为选项设置变量并尝试仅使用下面的代码获取设置或不设置的字段时,它不会呈现任何内容,但是当我编写代码而不检查空字段时,它正在呈现但是也是空幻灯片。

因此,如果我只设置了两个图像,则会使用5个幻灯片进行渲染,其中3个为空。

我的代码:

$slides = '<ul class="the-slider">';
for($s=1; $s<=5; $s++){

    $slide = $this->the_opt('slide'.$s.'_url_image');
    $slide_link = $this->the_opt('slide'.$s.'_link_image');
    $slide_name = basename($this->the_opt('slide'.$s.'_url_image'));
    $slide_alt = substr($slide_name, 0, strrpos($slide_name,'.'));

    if(!empty($slide)){
        $slides .= '<li><a href="'.$slide_link.'"><img src="'.$slide.'" alt="'.$slide_alt.'" title="'.$slide_alt.'" /></a></li>';
    } else {
        return '<div class="the-error">Set the slider...</div>';
    }
} // end for loop

$slides .= '</ul>';

return $slides;

那么如何才能获得仅设置字段的输出?

1 个答案:

答案 0 :(得分:0)

如果任何幻灯片为空,则只返回'<div class="the-error">Set the slider...</div>'

$slides .= '<div class="the-error">Set the slider...</div>';

而不是

return '<div class="the-error">Set the slider...</div>';

如果您只需要显示非空幻灯片而忽略其他幻灯片,那么您甚至不需要其他部分。