我确信这是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
}
}
}
?>
正确输出图像,然而&#34;照片计数&#34;没有增加,因此每张照片都得到了第一张照片类&#34; (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>
答案 0 :(得分:1)
如果不是,那么你永远不会增加$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的内部结构,如foreach
或empty
,您可以阅读手册中的用法。
由于JPATH_ROOT.'/images/'.$row->id.'/medium/'.$photo->image
没有逻辑而且不是null / false,它总是返回true,也许你想使用像file_exists
这样的东西?
使用!$photoclass
代替!isSet($photoclass)
会抛出未定义的变量通知。