Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何正确循环这些图片_Php_Foreach_Joomla3.0 - Fatal编程技术网

Php 如何正确循环这些图片

Php 如何正确循环这些图片,php,foreach,joomla3.0,Php,Foreach,Joomla3.0,我确信这是PHP的一个简单原理,但这是一个我还没有学会的原理。原则上,该准则适用于: <?php for($i=0;$i<count($photos);$i++){ if($photos[$i]->image != ""){ if(JPATH_ROOT.'/images/'.$row->id.'/medium/'.$photos[$i]->image){ if(!$photocount)

我确信这是PHP的一个简单原理,但这是一个我还没有学会的原理。原则上,该准则适用于:

<?php
    for($i=0;$i<count($photos);$i++){
        if($photos[$i]->image != ""){
            if(JPATH_ROOT.'/images/'.$row->id.'/medium/'.$photos[$i]->image){
                if(!$photocount) {
                    $photocount = $photocount + 1;
                    $photoclass = "property_photo_main property_photo_main_" . $photocount; // First Photo Class
                }
                ?>
                <img src="<?php echo JURI::root()?>images<?php echo $row->id;?>/medium/<?php echo $photos[$i]->image?>" class="<?php echo $photoclass; ?>" alt="<?php echo $photos[$i]->image_desc;?>" title="<?php echo $photos[$i]->image_desc;?>"/>
                <?php
            }
        }
    }
?>

图像/媒体/“class=”“alt=”“title=”“/>
这样可以正确输出图像,但是“照片计数”不会增加,因此每张照片都会获得“第一张照片类”(property_Photo_main_1)。我完全理解这里的问题是因为计数不在打印每张照片的循环内,而是在图像输出之前,循环在哪里,我如何实现计数的增加

HTML输出为:

                <img src="http://msa.eighttwentydesign.com/images/osproperty/properties/5/medium/51384100282240dc03c72cb44ce05eb9e56021d0c05.jpg" class="property_photo_main property_photo_main_1" alt="" title=""/>
                                    <img src="http://msa.eighttwentydesign.com/images/osproperty/properties/5/medium/51384100283f9f748ca556070c2d09553298dc26d8f.jpg" class="property_photo_main property_photo_main_1" alt="" title=""/>
                                    <img src="http://msa.eighttwentydesign.com/images/osproperty/properties/5/medium/51384100283b280e25f329d8cf1518bda4700b07765.jpg" class="property_photo_main property_photo_main_1" alt="" title=""/>
                                    <img src="http://msa.eighttwentydesign.com/images/osproperty/properties/5/medium/51384100283c801f9afb73308c7fd77a77ea00129bb.jpg" class="property_photo_main property_photo_main_1" alt="" title=""/>
                </div>

您永远不会在if之外增加
$photocount
。此外,您也永远不会重置
$photoclass

foreach ($photos as $photo) {
    if (!empty($photo->image)) {
        if (JPATH_ROOT.'/images/'.$row->id.'/medium/'.$photo->image) {

            if (!isSet($photocount))
                $photocount = 1;
            else
                $photocount++;

            $photoclass = "property_photo_main property_photo_main_" . $photocount;
            //HTML...
        }
    }
}
这样,
$photoclass
在每次迭代中都会重置,如果设置了,
$photocount
也会增加1。我还随意使用了PHP的内部结构,如或,您可以在手册中阅读有关用法的内容

由于
JPATH\u ROOT./images/'.$row->id./medium/'.$photo->image
没有逻辑且不为null/false,因此它将始终返回true,可能您想使用类似于


使用
!$photoclass
而不是
!isSet($photoclass)
将抛出一个未定义的变量通知。

谢谢,综合答案+1