首页 php教程 php手册 改造的volist

改造的volist

Jun 07, 2016 am 11:45 AM

1.修复 指定的key不为所循环的key bug
2.给每个循环体加了个 所指定的id加下划线i 的序号变量(id_i), 并且变量从1开始
3.初测通过.不正之处望指正.邮箱:xiatsing@china.com.cn
public function _volist($attr,$content) {
static $_iterateParseCache = array();
//如果已经解析过,则直接返回变量值
$cacheIterateId = md5($attr.$content);
if(isset($_iterateParseCache[$cacheIterateId]))
return $_iterateParseCache[$cacheIterateId];
$tag = $this->parseXmlAttr($attr,'volist');
$name = $tag['name'];
$id = $tag['id'];
$empty = isset($tag['empty'])?$tag['empty']:'';
$key = !empty($tag['key'])?$tag['key']:'i';
$mod = isset($tag['mod'])?$tag['mod']:'2';
// 允许使用函数设定数据集 {$vo.name}
$parseStr = ' if(0===strpos($name,':')) {
$parseStr .= '$_result='.substr($name,1).';';
$name = '$_result';
}else{
$name = $this->autoBuildVar($name);
}
$parseStr .= 'if(is_array('.$name.')): $'. $id .'_i = 1;';
if(isset($tag['length']) && '' !=$tag['length'] ) {
$parseStr .= ' $__LIST__ = array_slice('.$name.','.$tag['offset'].','.$tag['length'].',true);';
}elseif(isset($tag['offset']) && '' !=$tag['offset']){
$parseStr .= ' $__LIST__ = array_slice('.$name.','.$tag['offset'].',null,true);';
}else{
$parseStr .= ' $__LIST__ = '.$name.';';
}
$parseStr .= 'if( count($__LIST__)==0 ) : echo "'.$empty.'" ;';
$parseStr .= 'else: ';
$parseStr .= 'foreach($__LIST__ as $'.$key.'=>$' . $id . '): ';
$parseStr .= '$mod = ($'.$key.' % '.$mod.' );';
$parseStr .= '++$' . $id .'_i;?>';
$parseStr .= $this->tpl->parse($content);
$parseStr .= '';
$_iterateParseCache[$cacheIterateId] = $parseStr;

if(!empty($parseStr)) {
return $parseStr;
}
return ;
}

AD:真正免费,域名+虚机+企业邮箱=0元

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

了解Python编程的入门级代码示例 了解Python编程的入门级代码示例 Jan 04, 2024 am 10:50 AM

了解Python编程的入门级代码示例

PHP 变量的实际应用:10 个实际使用示例 PHP 变量的实际应用:10 个实际使用示例 Feb 19, 2024 pm 03:00 PM

PHP 变量的实际应用:10 个实际使用示例

如何使用PHP编写库存管理系统中的库存分仓管理功能代码 如何使用PHP编写库存管理系统中的库存分仓管理功能代码 Aug 06, 2023 pm 04:49 PM

如何使用PHP编写库存管理系统中的库存分仓管理功能代码

从入门到精通:Go语言中常用数据结构的代码实现 从入门到精通:Go语言中常用数据结构的代码实现 Mar 04, 2024 pm 03:09 PM

从入门到精通:Go语言中常用数据结构的代码实现

Java实现简单的冒泡排序代码 Java实现简单的冒泡排序代码 Jan 30, 2024 am 09:34 AM

Java实现简单的冒泡排序代码

Go语言编程实例:Web开发中的代码示例 Go语言编程实例:Web开发中的代码示例 Mar 04, 2024 pm 04:54 PM

Go语言编程实例:Web开发中的代码示例

华为云边缘计算对接指南:Java代码示例快速实现接口 华为云边缘计算对接指南:Java代码示例快速实现接口 Jul 05, 2023 pm 09:57 PM

华为云边缘计算对接指南:Java代码示例快速实现接口

指导与示例:学习Java选择排序算法的实现 指导与示例:学习Java选择排序算法的实现 Feb 18, 2024 am 10:52 AM

指导与示例:学习Java选择排序算法的实现

See all articles