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

use*_*318 2 php validation sanitization

在这段代码中,我收到了警告

警告:filter_var()期望参数2为long,最后一行给出的字符串

$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
Run Code Online (Sandbox Code Playgroud)

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

 !filter_var($str, FILTER_VALIDATE_STRING)
Run Code Online (Sandbox Code Playgroud)

这个错误的原因是什么?

Tay*_*ell 7

没有像FILTER_VALIDATE_STRING 这样的过滤器 ...你能使用is_string吗?


Kin*_*nch 5

正如@TaylorOtwell所说:没有过滤器FILTER_VALIDATE_STRING.现在,如果你打电话

!filter_var($str, FILTER_VALIDATE_STRING)
Run Code Online (Sandbox Code Playgroud)

你会收到通知

PHP Notice:  Use of undefined constant FILTER_VALIDATE_STRING - assumed 'FILTER_VALIDATE_STRING'
Run Code Online (Sandbox Code Playgroud)

看来,你error_reporting不包含通知.