【发布时间】:2014-01-08 12:39:51
【问题描述】:
谁能解释一下,为什么我会收到非常奇怪的警告:
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 - Manual 的描述中是这样描述的:
说明
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.
问题:
- 为什么在手册中说
filter_input ( int $type ,- INPUT_GET 和 INPUT_POST 等都不是 INTEGERS。 - 有没有办法使用变量将值传递给
filter_input?
【问题讨论】:
标签: php filter-input