欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

这句如何理解

程序员文章站 2022-05-18 18:09:04
...
//向模板抛出内容

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 就将多个数据集合置于其中了,注意:同名的关联键将是,后来的覆盖先到的
相关标签: 这句如何理解