For a döngünün ilk öğeyi Başlarken

3 Cevap php

Ben sürgülü sekmeli arayüzü son 5 içerik öğelerini görüntülemek istiyorum çünkü, onun newsflash modülüne ağır dayalı, tüm zor işleri yapılır, ama ben gerçek zorlaşıyor içeriği olan benim kendi Joomla bileşeni (MVC) yazıyorum için kestim.

Here is the code I have so far default.php

<ul id="handles" class="tabs">
    <?php for ($i = 0, $n = count($list); $i < $n; $i ++) :
            modSankeSlideHelper::getTabs($list[$i]);
     endfor; ?>                
<li class="end"></li>
</ul>

helper.php

function getTabs(&$item)
{
    global $mainframe;

    $item->created     = $item->created;

    list($year, $month, $day) = split("-", $item->created);
    $tabdate = date('d\/m\/y', mktime(0, 0, 0, $month, $day, $year));

    require(JModuleHelper::getLayoutPath('mod_sankeslide', '_tab'));
}

_tab.php

<li><a href="#tab"><span><?php echo 'Shout ' . $tabdate; ?></span><b></b></a></li>

Ilk öğe farklı bir değer ve bir sınıf öğesi a eklenen sahip olması gerekir: öğe, bu yüzden ilk kalemi olan belirlemek ve bu döngü sırasında bir şey yapmak gerekiyor.

Ben default.php eğer $ i = 0 else deyimini kullanmayı denedim, ama nedense bir sayfa zaman aşımı sonuçlandı!

Herhangi bir fikir?

3 Cevap

Sen ile, comparison operator edilir == PHP, if $i = 0 çalıştı, dedi sizin her tekrarında size $ için 0 atamak çünkü, sonsuz bir döngü varsa i ve bu döngü içinde yapmalıdır $ n, asla ulaşır:

if ($i == 0){
  // First Item here...

}else{
  // Other Items...

}

Ben CMS doğru @ düşünüyorum.

Ayrıca döngünün dışındaki ilk öğeyi taşıma ve döngü öğelerin kalanını işlemek izin düşünmek isteyebilirsiniz. Bu şekilde döngünün her geçişte kontrol yapmak zorunda değilsiniz.

Bir ovaya for döngü kullanıyorsanız, ben sadece 1 öğe üzerinde hareket eden ve sonra da geri kalan döngü tavsiye ederim tvanfosson said. Bu biraz daha hızlı ve okumak için potansiyel daha kolay ...

doSomethingWithFirst($list[0]);

for ($i = 1; $i < count($list); $i++) {
    doSomethingWithTheRest($list[$i]);
}

Ben bu durumda, bu yüzden gibi, bir "firstDone" var kullanmak istiyorum, diziler üzerinde döngü foreach for üzerinden kullanmak eğilimindedir:

$bFirstTime = true;
foreach($list as $item) {
    if ($bFirstTime) {
        doSomethingWithFirst($item);
        $bFirstTime = false;
    } else {
        doSomethingWithTheRest($item);
    }
}