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. #学习笔记#——JavaScript 数组部分编程(一)

    来自牛客网的js编程题 1.移除数组 arr 中的所有值与 item 相等的元素.不要直接修改数组 arr,结果返回新的数组 function remove(arr, item) { if(!Arra ...

  2. PS:切图

    1.从psd中获取资源 2.基本了解 3.简单的图片操作和调整 4.对自己的审美提高一.界面设置: 1.新建设置:ctr+n; 预设:Web,大小Web(1920*1080) 背景:透明 2.移动工具 ...

  3. RPC简易学习

    0.RPC简介 RPC,   英文全称:Remote Process Call.   中文全称:远程过程调用. 客户端通过网络请求调用远程服务端对外暴露服务.常用的两种RPC协议:TCP.HTTP. ...

  4. Flask框架简介

    Flask框架诞生于2010年,是Armin ronacher 用python语言基于Werkzeug工具箱编写的轻量级Web开发框架! Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展. ...

  5. 各种join一目了然: join 、inner join、left join 、right join、full join

    各种join一幅图一目了然 一下每幅图都是指: A * join B on A.id = B.in 这个帖子也非常形象.比較好:http://www.phpddt.com/db/inner_join- ...

  6. Kali Linux下安装VMware Tools

    引言 Kali Linux是基于Debian的Linux发行版, 设计用于数字取证和渗透測试.安装Kali Linux非常easy,可是安装VMware Tools的过程就有点麻烦了,由于在安装中途会 ...

  7. C#截取指定长度中英文字符串方法 (修改)

    public static string GetFirstString(string stringToSub, int length) { Regex regex = new Regex(" ...

  8. 使用C#对XML进行增删改查操作

    xml文件格式 <?xml version="1.0" encoding="utf-8"?> <messageList> <mes ...

  9. [React & Testing] Snapshot testings

    For example we have a React comonent: -- A toggle button, we want to test. When it si toggle on, the ...

  10. Android控件:RadioButton(单选button)

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...