2011-04-12 47 views
2

给在这段代码中,我得到一个警告警告:filter_var()预计参数2长,字符串中

警告: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) 

什么是这个错误的原因是什么?

+0

什么是“验证字符串”应该是无论如何? – Jon 2011-04-12 14:40:45

+0

这是来自Live Chat插件吗? – TARKUS 2017-02-06 15:34:56

回答

7

有没有这样的filter作为FILTER_VALIDATE_STRING ...你可以只使用is_string?

+0

就“is_string”而言,它肯定会是一个字符串。没有人会写'$ name = 5;'。 – Jon 2011-04-12 14:41:21

+0

@Jon:谁是没有人,和他有什么关系? – 2011-04-12 14:42:45

+0

我应该看过文档。对不起,谢谢 – user455318 2011-04-12 14:48:36

4

As @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犯规包括通知。

相关问题