PHP在DIV循环中的每个NTH之后

时间:2012-06-07 15:11:21

标签: loops

您好我想在循环中的每个第3个div之后添加内容。这是下面的代码,但我没有得到渲染内容“嗨这是3d div”

它没有检测到每个第3个div。

<?php
    function q_list_item($q_item)
    {
        $count = 0;

        $this->output('<DIV>');
        $this->my_items;    
        $this->output('</DIV>');

        $count++;           

        if($count % 3 == 0) {
            echo 'Hi this is the 3rd div';
        }

    }
?>

---- [Actual Function] ------------------------------------ -----------

<?php

function q_list_item($q_item)
{

    $this->output('<DIV CLASS="qa-q-list-item'.rtrim(' '.@$q_item['classes']).'" '.@$q_item['tags'].'>');

    $this->q_item_stats($q_item);
    $this->q_item_main($q_item);
    $this->q_item_clear();

    $this->output('</DIV> <!-- END qa-q-list-item -->', '');

}
?>

2 个答案:

答案 0 :(得分:2)

您正在将此函数顶部的$count重置为0,因此在函数末尾运行if语句时它始终为1。

这可能对您的问题有所帮助,虽然我无法判断您的代码是否在类中,因为它看起来不像,但您在那里使用$this->。基本上,将函数的实例化移到函数之外:

<?php
    $q_list_count = 0;

    function q_list_item($q_item)
    {
        $q_list_count++;

        $this->output('<DIV>');
        $this->my_items;    
        $this->output('</DIV>');

        if($q_list_count % 3 == 0) {
            echo 'Hi this is the 3rd div';
        }

    }
?>

答案 1 :(得分:0)

<?php
    $count = 0;
    function q_list_item($q_item)
    {
        $this->output('<DIV>');
        $this->my_items;    
        $this->output('</DIV>');

        $count++;           

        if($count % 3 == 0) {
            echo 'Hi this is the 3rd div';
        }

    }
?>

初始化循环外的$ count,否则count到达if语句时总是为1