本帖最后由 phpcms2021 于 2015-03-27 11:02:54 编辑 //向模板抛出内容
Tpl::output('brand_list',$brand_list);
主要是参数不理解,brand_list是一组值,还是一个值,我感觉应该是一组,因为如果一个就没有必要这样玩吧,因为是抛向模板
下面是output方法
/**
* 抛出变量
*
* @param mixed $output
* @param void
*/
public static function output($output,$input=''){
self::getInstance();
self::$output_value[$output] = $input;
}
/**
* 实例化
*
* @return obj
*/
public static function getInstance(){
if (self::$instance === null || !(self::$instance instanceof Tpl)){
self::$instance = new Tpl();
}
return self::$instance;
}
class Tpl{
/**
* 单件对象
*/
private static $instance = null;
/**
* 输出模板内容的数组,其他的变量不允许从程序中直接输出到模板
*/
private static $output_value = array();
/**
* 模板路径设置
*/
private static $tpl_dir='';
/**
* 默认layout
*/
private static $layout_file = 'layout';
private function __construct(){}
/**
* 实例化
*
* @return obj
*/
public static function getInstance(){
if (self::$instance === null || !(self::$instance instanceof Tpl)){
self::$instance = new Tpl();
}
return self::$instance;
}
我主要是想明白,上面这些函数通过什么逻辑抛值的,并且是向模板中,看了发晕,逻辑上搞不明白
------解决思路----------------------Tpl::output('brand_list',$brand_list); 中
'brand_list' 是单值(你不也看到他是用单引号括起的吗?),表示一个数据项。这样在模板中就可用 brand_list 这个名字取到数据
从定义
public static function output($output,$input=''){<br /> self::getInstance();<br /> self::$output_value[$output] = $input;<br />}
也可看到,$output 是作为数组的关联键出现的,显然关联键只能是标量。你不可能用数组(对象)做关联键的
多次执行 Tpl::output 就将多个数据集合置于其中了,注意:同名的关联键将是,后来的覆盖先到的