Home >Backend Development >PHP Tutorial >一个让人会绕晕的逻辑

一个让人会绕晕的逻辑

WBOY
WBOYOriginal
2016-06-13 12:21:102654browse

一个让人能绕晕的逻辑

本帖最后由 tp_2015_3 于 2015-06-02 12:47:28 编辑 为了便于说明,我用不同的颜色自然段说明吧
这是一个关于定义数组的问题
是在一个框架中,首先在类中定义了一个整合数组的方法

/**
 * 输出模板内容的数组,其他的变量不允许从程序中直接输出到模板
 */
private static $output_value = array();

public static function output($output,$input=''){
self::getInstance();

self::$output_value[$output] = $input;
}

在实际应用中,在一个文件里,这样写的
//板块信息
$model_web_config = Model('web_config');
$web_html = $model_web_config->getWebHtml('index');
Tpl::output('web_html',$web_html);

接着在模板中这里写的

好我的问题来了:
通过上面一系列的计算获得了数组库中的数据,并把数据放在数组里了。此时在模板中的写法首先要知道这个数组叫啥名,然后通过下标配合就能获得数组中的对应值 了,这时我的疑问来了,这里为啥数组名叫$output呢?
这个名是随便起还是说有上下文的约定呢,我看了一下上文,没有这个名字的定义呢,就突然出现,所以让人目瞪口呆!何解?


我目前的理解:也许有人会说是这句Tpl::output('web_html',$web_html);话中的output说明了,我认为不是,因为这里它是一个方法名,而不是数组名!按说上面已经定义了/**
 * 输出模板内容的数组,其他的变量不允许从程序中直接输出到模板
 */
private static $output_value = array();,为啥这里不用$output_value做数组名,而是用$output来做数组名呢,
------解决思路----------------------
可能是在 Tpl::output 的函数里面定义了  $output 这个数组
------解决思路----------------------
可能是output方法中定义了
<br />$web_html = array('index'=>'xxx');<br />output('web_html',$web_html);<br /><br />function output($key, $value){<br />	global $output;<br />	$output[$key] = $value;<br />	return $output;<br />}<br />echo $output['web_html']['index'];<br />


------解决思路----------------------
可能其他地方赋值了,比如:$output = $output_value;
具体要看完整的类如何写的
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn