0

こんにちは私はループの3番目のdivごとにコンテンツを追加したいと思います。以下のコードですが、「こんにちは、これは3ddivです」というレンダリングコンテンツも取得していません。

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

この関数の先頭で を 0 にリセットしている$countため、関数の最後で 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 に答える