htmlspecialchars()期望参数1为字符串,为zend指定数组

时间:2014-02-26 11:13:48

标签: zend-framework htmlspecialchars

我在文件中有错误:Abstract.php

Warning: htmlspecialchars() expects parameter 1 to be string,array given in /usr/local/zend/share/ZendFramework/library/Zend/View/Abstract.php on line 905

我在第905行有这个:

 public function escape($var)
{
    if (in_array($this->_escape, array('htmlspecialchars', 'htmlentities'))) {
        return call_user_func($this->_escape, $var, ENT_COMPAT, $this->_encoding);
    }

    if (1 == func_num_args()) {
        return call_user_func($this->_escape, $var);
    }
    $args = func_get_args();
    return call_user_func_array($this->_escape, $args);
}

我不明白这一点......

2 个答案:

答案 0 :(得分:0)

您可能已将数组添加到$this->escape()函数中。

如果您不知道在哪里添加文件Abstract.php,请执行以下操作:

if(is_array($var)){
  Zend_Debug::dump($var);//this will print variable causing problem
  //OR
  throw new Exception(' ');//this will print debug backtrace showing which line caused problem
}

答案 1 :(得分:0)

我在lib / Varien / Data / Form / Element / Abstract.php上遇到了同样的问题 我在下面做了更新

protected function _escape($string)
    {

         return htmlspecialchars($string, ENT_COMPAT);     


    }

protected function _escape($string)
    {
      if(is_string($string)) {
         return htmlspecialchars($string, ENT_COMPAT);     
       }
      else
       {
              return $string;

        }   

    }

事情开始奏效。