0

嗨,我想在循环中的每 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';
        }

    }
?>

----[实际功能]------------------------------------------ -----

<?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 -->', '');

}
?>
4

2 回答 2

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';
        }

    }
?>
于 2012-06-07T15:15:35.010 回答
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,否则到达 if 语句时 count 将始终为 1

于 2012-06-07T15:20:32.530 回答