3.2.1 - 普通 - 已处理
手册位置:http://document.thinkphp.cn/manual_3_2.html#input_var使用如下方式是失效的:
I('post.email','',FILTER_VALIDATE_EMAIL);原因:因为I方法中是使用explode方法来处理$filters的 导致
$filters = isset($filter)?$filter:C('DEFAULT_FILTER');
var_dump(gettype($filters)); //int 274
if($filters) {
$filters = explode(',',$filters);
var_dump(gettype($filters[0])); // string '274'FILTER_VALIDATE_EMAIL的类型由int变成了String然后再使用filter_id获取这个假字符串的返回结果必然为false
$data = filter_var($data,is_int($filter)?$filter:filter_id($filter));所以虽然是合法的email也会返回false了 