当前位置:Gxlcms > PHP教程 > 这句如何理解

这句如何理解

时间:2021-07-01 10:21:17 帮助过:6人阅读

//向模板抛出内容

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=''){  self::getInstance();  self::$output_value[$output] = $input;}
也可看到,$output 是作为数组的关联键出现的,显然关联键只能是标量。你不可能用数组(对象)做关联键的

多次执行 Tpl::output 就将多个数据集合置于其中了,注意:同名的关联键将是,后来的覆盖先到的

人气教程排行