使用变量将值传递到filter_input()

2024-04-19

谁能解释一下,为什么我会收到非常奇怪的警告:

filter_input() expects parameter 1 to be long, string given

执行代码时,这是我的类的一部分,看起来非常好:

public static function Input($type, $data, $filter = 'FILTER_SANITIZE_SPECIAL_CHARS')
  {
    $type = 'INPUT_' . $type;
    return filter_input($type, $data, $filter);
  }

如果我将其更改为,例如:

return filter_input(INPUT_POST, $data, $filter);

然后警告将转到:

filter_input() expects parameter 3 to be long.

如果我使用,一切都会正常工作:

return filter_input(INPUT_POST, $data, FILTER_SANITIZE_SPECIAL_CHARS);


我意识到PHP: filter_input - 手册 http://www.php.net/manual/en/function.filter-input.php描述中指出:

描述

mixed filter_input ( int $type , string $variable_name [, int $filter = FILTER_DEFAULT [, mixed $options ]] )

参数

type
   One of INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, or INPUT_ENV.

问题:

  1. 为什么说明书上这么说filter_input ( int $type ,- 当两者都不是时输入获取 nor 输入_POST等等是INTEGERS.
  2. 有没有办法将值传递给filter_input使用变量?

你应该使用的有常量 http://php.net/constants。这些常数有整数值。所以文档是完全正确的,INPUT_GET是一个整数。尝试var_dump(INPUT_GET).

如果需要从字符串中获取常量值,请使用constant():

echo constant('INPUT_' . $type);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用变量将值传递到filter_input() 的相关文章

随机推荐