为了账号安全,请及时绑定邮箱和手机立即绑定

thinkphp中的offset是不是必须和length同时使用

thinkphp中的offset是不是必须和length同时使用

Qyouu 2019-02-19 13:13:03
thinkphp中的offset是不是必须和length同时使用
查看完整描述

2 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

加了offset不加length的话系统会自动取数组中元素的个数来补全,但是不加offset却加了length则会报错。


下面大概说一下这里thinkphp是如何实现的:

thinkphp这里是用的数组截取,也就是array_slice函数,

12array array_slice array $array , int $offset [, int $length [, bool $preserve_keys ]] )

array_slice() 默认将重置数组的键。自 PHP 5.0.2
起,可以通过将 preserve_keys 设为
TRUE 来改变此行为。

这里因为要保存原来的键值,所以需要第四个参数TRUE的。


模板和实现对应:

1、正常

1<volist name="lists" id="list" offset="0" length='15'>
1$__LIST__ array_slice($lists,0,15,true);

2、正常

1<volist name="lists" id="list" offset="0">
1$__LIST__ array_slice($lists,0,count($__LIST__),true);

3、报错

1<volist name="lists" id="list" length="15">
1$__LIST__ array_slice($lists,,15,true);



查看完整回答
反对 回复 2019-02-26
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

不是必须的。
如果offset为5,length为10,则输出5-15条数据。
若offset为5,length不写,则输出从第五条以后的所有数据。

查看完整回答
反对 回复 2019-02-26
  • 2 回答
  • 0 关注
  • 725 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信