thinkphp中view页面中的volist标签转化为原生php分析(多去看源代码,你会发现不仅简单,方便你理解,还节约时间)

一、总结

1、标签和原生php之间的关系标签只是为了方便你使用,标签能做到的功能原生php一定能做到,因为标签就是用原生php写的

二、thinkphp中view页面中的volist标签转化为原生php分析

view中的volist标签

{volist name="dataout" id="vo"}
{/volist}

转化为原生php后的代码

<?php if(is_array($dataout) || $dataout instanceof \think\Collection || $dataout instanceof \think\Paginator): $i = 0; $__LIST__ = $dataout;if( count($__LIST__)==0 ) : echo "" ;else: foreach($__LIST__ as $key=>$vo): $mod = ($i % 2 );++$i;?>
<?php endforeach; endif; else: echo "" ;endif; ?>

1、if(is_array($dataout) || $dataout instanceof \think\Collection || $dataout instanceof \think\Paginator): 这部分判断从控制器传过来的数据是不是数组,或者Collection或者Paginator的实例,因为volist的参数可以是这三种

2、$i = 0; $__LIST__ = $dataout; i赋初值并且将页面传过来的数据赋值给 $__LIST__  ,所以从这里可以发现页面传过来的数据可以直接$dataout; 的方式用

3、if( count($__LIST__)==0 ) : echo "" ; 判断数据是否为空,为空则输出空

4、foreach($__LIST__ as $key=>$vo): foreach遍历数组啊

5、$mod = ($i % 2 );++$i; 生成mod参数,也就是volist中的歌mod参数,代表奇偶数的那个变量

6、endforeach; endif; 因为我们把循环和判断分开来写了,所以你没法用}来判断块结束,所以就 用endforeach来结束foreach,用endif来结束if

三、volist标签的几个参数

name 需要遍历的数据

id 类似于foreach中 value

offset 截取数据起始位置

length 截取数据的个数

mod 奇偶数

empty 数据为空的使用

key 编号

在volist中有些参数没有用,如果你用了就会转化为对应的php

标签只是为了方便你使用,标签能做到的功能原生php一定能做到,因为标签就是用原生php写的

thinkphp中view页面中的volist标签转化为原生php分析(多去看源代码,你会发现不仅简单,方便你理解,还节约时间)的更多相关文章

  1. struts2 - View页面中获取Action的成员变量

    struts2 - View页面中获取Action的成员变量 2016年03月02日 11:04:44 IT男青年 阅读数:1074   View页面中获取Action的成员变量 按照Struts的设 ...

  2. ThinkPHP中处理模板引擎的volist标签

    Volist标签主要用于在模板中循环输出数据集或者多维数组 必须得属性有:name属性,要输出的数据模板变量,id是循环变量. 其他属性参见开发手册. 通常模型的select方法返回的结果是一个二维数 ...

  3. gridView在view页面中的一些代码详细模板

    <?php use yii\helpers\Html; use yii\grid\GridView; use yii\widgets\Pjax; use frontend\models\Item ...

  4. Visual Studio中View页面与Js页面用快捷键互相跳转

    现在已经将源码放到GitHub中了 地址是 https://github.com/liningit/ViewJsLN 公司开发的项目使用的是Mvc框架,且Js与View页面是分开在两个文件夹下的,所以 ...

  5. FineUI中在一个页面中通过控件事件(JS)向父页面中添加Tab页

    1.在前台页面尾部添加js代码 </form>    <script type="text/javascript">        var basePath ...

  6. MVC中view页面用jquery方法绑定select控件值

    var sortid = '@Model.myWorkMatter.WorkMatterSortID'; $("#selectSort").val(sortid); $(" ...

  7. vue 中view层中方法的使用

    1.使用filters computed:{ }, filters: { filterA: function(value) { return value + 'wh' } }, 2.用法:  {{it ...

  8. 微信小程序中在页面中实现下拉刷新显示提醒语后在消失

    最近在做小程序的时候遇见一个问题,就是页面要下拉刷新给客户一个提醒语,查看了小程序的官方文档 这里有个注意点:如果你是一页进行下拉刷新就在那个文件夹的json里面加上"enablePullD ...

  9. Idea中JSP页面中out内置对象报错out.println标红问题

    问题如图: 解决方法: 导入jar包 1.在pom.xml的<dependencies>里面复制 <dependency> <groupId>javax.servl ...

随机推荐

  1. 用Nagios监控Sql Server服务器

    在Suse 下配置Nagios来监控Ms SQL Server操作演示 本文出自 "李晨光原创技术博客" 博客,谢绝转载!

  2. [ Java ] [ Eclipse ] 加速 Eclipse 載入速度-轉載

    加速 Eclipse 載入速度-轉載 https://read01.com/NJjNOB.html

  3. Repeater控件的

    http://blog.csdn.net/zhang_xinxiu/article/details/21872433 想起来,公司的aspx页面前台数据展示除了datagrid以为还有Repeater ...

  4. css3--简单的加载动画

    .load-container { width: 30%; height: auto; position: relative; margin: 1rem auto; } .load { width: ...

  5. 【Android个人理解(八)】跨应用调用不同组件的方法

    如果情景: 创建两个应用appA和appB,appA包括一个Service,此Service有一个堵塞方法每隔10秒钟产生一个随机数字,例如以下: public int getRandomInt(){ ...

  6. js30--代理模式

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  7. android图片特效处理之光照效果

    这篇将讲到图片特效处理的光照效果.跟前面一样是对像素点进行处理,算法是通用的. 算法原理:图片上面的像素点按照给定圆心,按照圆半径的变化,像素点的RGB值分别加上相应的值作为当前点的RGB值. 例: ...

  8. excel表如何实现多if选择结构多分支判断

    excel表如何实现多if选择结构多分支判断 一.总结 一句话总结:把多if分支转换成单if分支相加. 也可以if分支,也可以lookup函数. 1.CHOICE: +2 if band A; +1 ...

  9. 【单词】常见单词含义的辨异(emulator/simulator、hardware/firmware)

    1. emulator 与 simulator The Simulator tries to duplicate the behavior of the device.(仿真的是行为): The Em ...

  10. BZOJ2157: 旅游(LCT)

    Description Ray 乐忠于旅游,这次他来到了T 城.T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接.为了方便游客到达每个景点但又为了节约成本,T 城的任意两个景点之间 ...