警告:filter_var()期望参数2为长字符串


Warning: filter_var() expects parameter 2 to be long, string given in

在这段代码中,我得到了一个警告

警告:filter_var()期望参数2是长,字符串在最后一行

$check = filter_var($email, FILTER_SANITIZE_EMAIL);
$str = filter_var($name, FILTER_SANITIZE_STRING);
if (!filter_var($check, FILTER_VALIDATE_EMAIL) && !filter_var($str, FILTER_VALIDATE_STRING)) { //here

问题是这样的,因为没有它就不存在任何警告消息

 !filter_var($str, FILTER_VALIDATE_STRING)

这个错误的原因是什么?

没有过滤器FILTER_VALIDATE_STRING…你可以直接使用is_string吗?

正如@TaylorOtwell所提到的:没有过滤器FILTER_VALIDATE_STRING。现在,如果你调用

!filter_var($str, FILTER_VALIDATE_STRING)

你会收到通知

PHP Notice:  Use of undefined constant FILTER_VALIDATE_STRING - assumed 'FILTER_VALIDATE_STRING'

看来,你的error_reporting没有包括通知。