日期:2014-05-16  浏览次数:20649 次

smarty中assign()这个函数是如何定义的
谁能帖出这个函数的代码啊,以及它的原理
------解决方案--------------------
smarty_internal_data.php
    /**
     * assigns a Smarty variable
     *
     * @param array
------解决方案--------------------
string $tpl_var the template variable name(s)
     * @param mixed        $value   the value to assign
     * @param boolean      $nocache if true any output of this variable will be not cached
     * @param boolean $scope the scope the variable will have  (local,parent or root)
     */
    public function assign($tpl_var, $value = null, $nocache = false)
    {
        if (is_array($tpl_var)) {
            foreach ($tpl_var as $_key => $_val) {
                if ($_key != '') {
                    if (isset($this->tpl_vars[$_key])) {
                        $this->tpl_vars[$_key]->value = $_val;
                        $this->tpl_vars[$_key]->nocache = $nocache;
                    } else {
                        $this->tpl_vars[$_key] = new Smarty_variable($_val, $nocache);
                    }
                }
            }
        } else {
            if ($tpl_var != '') {
                if (isset($this->tpl_vars[$tpl_var])) {
                    $this->tpl_vars[$tpl_var]->value = $value;
                    $this->tpl_vars[$tpl_var]->nocache = $nocache;
                } else {
                    $this->tpl_vars[$tpl_var] = new Smarty_variable($value, $n