<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---路飞[email protected]
- 3...3---蜡笔乖欣[email protected]
- [email protected]
- 7...65---小心[email protected]
- 9...74---aa73f80eb8608a88a135---
- 11...76---_呵呵[email protected]
- [email protected]
为什么取出的值是这样呢? 按自己的理解 应该是 $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---路飞[email protected]
- 2...3---蜡笔乖欣[email protected]
- [email protected]
- 6...65---小心[email protected]
- 8...74---aa73f80eb8608a88a135---
- 10...76---_呵呵[email protected]
- [email protected]
答案显然就出来了,是thinkphp中 把mod 的$k值改变了。。。。。
时间: 2024-10-06 01:19:05