注意:未定义的常量ENT_HTML5用途 - 假设“ENT_HTML5”(Notice: Use o

2019-09-19 15:01发布

我想创建并同意对的htmlspecialchars参数的简单方法。 虽然我得到PHP的通知:

未定义的常量ENT_HTML5用途 - 假设“ENT_HTML5”

  1. 任何想法可能是造成这个?

/ **

 * Encode string.
 *
 * @param array/string $value
 * @param string $param
 * @return string
 */
protected function escape($mixed, $params) {

    $defaults = array('flags' => ENT_QUOTES | ENT_HTML5, 'charset' => 'UTF-8');
    $params = array_merge($defaults, $params);

    if (is_array($mixed)) {
        foreach($mixed as $key => $value) {
            $mixed[$key] = $this->escape($value, $params['flags'], $params['charset']);
        }
    } elseif (is_string($mixed)) {
        $mixed = htmlspecialchars($mixed, $params['flags'], $params['charset']);
    }

    return $mixed;
}
  1. 如果我改变: ENT_QUOTES | ENT_HTML5 ENT_QUOTES | ENT_HTML5到: ENT_QUOTES ,我得到一个不同的错误

警告:用htmlspecialchars()预计参数2长,给出的字符串

UPDATE

我使用PHP 5.3,所以这是对HTML5错误的原因。 如果我改变ENT_QUOTES | ENT_HTML5 ENT_QUOTES | ENT_HTML5ENT_COMPAT | ENT_HTML401 ENT_COMPAT | ENT_HTML401我得到相同类型的错误:

注意:未定义的常量ENT_HTML401用途 - 假设“ENT_HTML401”

Answer 1:

ENT_HTML5,ENT_HTML401,和其他一些人在PHP 5.4版本中添加按照手册 。 对于早期版本的常量是不确定的,而PHP就会自然而然地认为未定义的常量编程“单”,并将其转换为字符串。



文章来源: Notice: Use of undefined constant ENT_HTML5 - assumed 'ENT_HTML5'