thinkphp中 volist循環的 mod取值的問題


<ul>
    <volist name="data" id="arr" key="k" mod="2">
        <eq name="mod" value="0">
            <li>{$k}...{$arr.id}---{$arr.user}---{$arr.email}</li>
        </eq>
    </volist>
</ul>

取出的值是:

  • 1...1---路飛---lufei@qq.com
  • 3...3---蠟筆乖欣---222@qq.com
  • 5...53---heh21033---fff@qq.com
  • 7...65---小心---xiaoxin@qq.com
  • 9...74---aa73f80eb8608a88a135---
  • 11...76---_呵呵3994---heh@qq.com
  • 13...78---5e36941b3d856737e815---xixi@qq.com

為什么取出的值是這樣呢? 按自己的理解 應該是 $mod = $k%2; 然后 為0的輸出來,怎么$k是基數呢,不應該是偶數嗎?

隨后查看緩存中的源碼:

<ul>
    <?php if (is_array($data)): $k = 0;
        $__LIST__ = $data;
        if (count($__LIST__) == 0) : echo "";
        else: foreach ($__LIST__ as $key => $arr): $mod = ($k % 2);
            ++$k;
            if (($mod) == "0"): ?>
                <li><?php echo($k); ?>...<?php echo($arr["id"]); ?>---<?php echo($arr["user"]); ?>
                ---<?php echo($arr["email"]); ?></li><?php endif; endforeach; endif;
    else: echo "";endif; ?>
</ul>

知道了,$k是從0開始的,而外面的$k卻是1開始的

我們這樣,自己定義一個$i:

<ul>
    <!--取mod問題-->
    <php>$i=0;</php>
    <volist name="data" id="arr" key="k" mod="5">
        <eq name="mod" value="0">
            <li><php>echo $i;</php>...{$arr.id}---{$arr.user}---{$arr.email}</li>
        </eq>
        <php>$i++;</php>
    </volist>
</ul>

值:

  • 0...1---路飛---lufei@qq.com
  • 2...3---蠟筆乖欣---222@qq.com
  • 4...53---heh21033---fff@qq.com
  • 6...65---小心---xiaoxin@qq.com
  • 8...74---aa73f80eb8608a88a135---
  • 10...76---_呵呵3994---heh@qq.com
  • 12...78---5e36941b3d856737e815---xixi@qq.com

答案顯然就出來了,是thinkphp中 把mod 的$k值改變了。。。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM