سؤال

وأنا أكتب بلدي مكون جملة (MVC)، التي تعتمد إلى حد كبير على وحدة خبر عاجل، لأنني أريد لعرض أحدث 5 عناصر المحتوى في واجهة تفاعلية انزلاق، ويتم كل هذا العمل الشاق، ولكن أواجه الحقيقي محتوى يزداد صعوبة من لحلقة.

وهنا هو رمز لدي حتى الآن 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>

والبند الأول يحتاج إلى قيمة مختلفة وعنصر من الدرجة تضاف إلى ل: البند، لذلك أنا بحاجة إلى أن تكون قادرة على تحديد ما هو العنصر الأول وتفعل شيئا خلال تلك الحلقة

ولقد حاولت استخدام إذا $ ط = 0 بيان آخر في default.php، لكنه أدى إلى مهلة الصفحة لسبب ما!

وأي أفكار؟

هل كانت مفيدة؟

المحلول

وقلت، حاولت if $i = 0، و مقارنة مشغل في PHP هو ==، مع الخاص إذا كان لديك حلقة لا نهاية لها، لأنه في كل التكرار تعيين 0 إلى i $، وأنه لم يصل إلى $ ن، يتعين عليك أن تفعل داخل حلقة الخاص بك:

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

}else{
  // Other Items...

} 

نصائح أخرى

وأعتقدCMS هو الصحيح.

وقد ترغب أيضا إلى التفكير في التعامل مع العنصر الأول خارج الحلقة والسماح للحلقة التعامل مع بقية العناصر. بهذه الطريقة لم يكن لديك لجعل الاختيار على كل تمرير خلال الحلقة.

إذا كنت تستخدم for حلقة عادي، أنصح فقط بناء على 1st مادة ثم حلقات من خلال ما تبقى كما tvanfosson قال . انها أسرع قليلا، وربما أسهل في القراءة ...

doSomethingWithFirst($list[0]);

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

وأنا أميل إلى استخدام foreach على for إلى حلقة على المصفوفات، في هذه الحالة، وأود أن استخدام "firstDone" فار، كما يلي:

$bFirstTime = true;
foreach($list as $item) {
    if ($bFirstTime) {
        doSomethingWithFirst($item);
        $bFirstTime = false;
    } else {
        doSomethingWithTheRest($item);
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top