【问题标题】:How to add an if statement to a for loop?如何在 for 循环中添加 if 语句?
【发布时间】:2013-05-30 16:55:14
【问题描述】:

我有一个可用的 php 脚本,我需要一些帮助来修改。

这是我的脚本:

<? $images = $product->images;
for ($i = 4; $i <= 8; $i++): ?>
<li>
<a href='<?= $images[$i]->getThumbnailPath(0,0) ?>' class="swatch_lbox_gallery" rel="gal">
<img src="<?= $images[$i]->getThumbnailPath(138, 0) ?>"/>
</a>   
<p><?= $images[$i]->title ?><br/>
<?= $images[$i]->description ?></p>
</li>
<? endfor; ?>

当有 4 个以上的图像时它确实有效,否则我会收到错误消息。我试图在其中添加一个 if 语句,以便在没有第四张图像时隐藏,但我无法让它工作。 任何帮助将不胜感激。如果我需要添加更多细节,请告诉我。

添加细节 - 我从 4 开始,因为我需要图像 4-8

谢谢!

斯蒂芬

【问题讨论】:

  • 你遇到了什么错误??你为什么要在循环中初始化 $i=4 的值?
  • 你试过$i = 0; $i &lt;= 8; $i++为什么你用$i=4 开始循环
  • 关于Barmar's 的回答,如果您的文件夹中只有4 张图像,那么您的$i = 4; 在技术上将不起作用。您是否测试过仅使用 4 张图像?从逻辑上讲,4 实际上是指5。 ;-)

标签: php if-statement for-loop


【解决方案1】:
if (count($images) >= 4) for ($i = 4; $i <= 8; $i++):

【讨论】:

    【解决方案2】:

    试试这个:

    <? 
        $images = $product->images;
        $startOnImage = 4;
        $endOnImage = 8;
    
        foreach($images as $key => $image)
        {
            if($key<$startOnImage){ continue; }
            if($key>$endOnImage){ break; }
    
            echo '<li>';
            echo '<a href="' . $image->getThumbnailPath(0,0) . '" class="swatch_lbox_gallery" rel="gal">';
            echo '<img src="' . $image->getThumbnailPath(138, 0) . '"/>';
            echo '</a>';
    
            echo '<p>' . $image->title . '<br/>';
            echo $image->description . '</p>';
            echo '</li>';
    
         }
    

    【讨论】:

    • 更好的编辑:)! +1 Infact - 更改 $image[$key],应该只是 $image-&gt;title$images[$key]
    • @Farkie +1,感谢您指出这一点!我的一个错误,应该已经看到了!
    • 这将显示所有图像。看起来他想从 #4 开始。
    • @Barmar 我已经编辑了代码,使其更容易在某些图像上开始和结束。
    • @Barmar 嗯...我认为 OP 是she。因此,Stephanie ;-) 除非她对我撒谎!
    【解决方案3】:
    for ($i = 4; $i <= min(8, count($images)-1); $i++) :
    

    -1 是必需的,因为数字数组索引从 0 开始,而不是 1。所以 $images[4] 要求 count($images) 至少为 5。

    【讨论】:

    • 大家好,非常感谢您的帮助!从技术上讲,Gamag 和 Phil Cross 的建议都有效,因此两者都是正确的。我将从使用 Gamag 开始,并推迟选择“正确”答案,直到客户批准。希望对你有用,非常感谢!!
    • @Stephanie Barmar 在数字数组索引 thingy 上有一个点。天哪,我已经忘记了。看看age 做了什么?提示:不要收到old
    猜你喜欢
    • 1970-01-01
    • 2019-12-20
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 2019-06-09
    相关资源
    最近更新 更多