解决方案 »

  1.   

    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, $nocache);
                    }
                }
            }
        }