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

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

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

慕斯709654 2019-02-20 11:13:50
thinkphp中的offset是不是必须和length同时使用
查看完整描述

2 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

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

 

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

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

1

2

array 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-03-04
?
噜噜哒

TA贡献1784条经验 获得超7个赞

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

查看完整回答
反对 回复 2019-03-04
  • 2 回答
  • 0 关注
  • 1388 浏览

添加回答

举报

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