Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么PHP';s filter_var无法识别电子邮件地址?_Php - Fatal编程技术网

为什么PHP';s filter_var无法识别电子邮件地址?

为什么PHP';s filter_var无法识别电子邮件地址?,php,Php,我从PHP开始,写了一个单元测试,看看我是否做对了 <?php use PHPUnit\Framework\TestCase; class MyTest extends TestCase { public function testEmailWtf() { $this->assertTrue(filter_var("me@gmail.com", FILTER_VALIDATE_EMAIL)); } } ?> 这失败了,但我不明白为什么 1

我从PHP开始,写了一个单元测试,看看我是否做对了

<?php
use PHPUnit\Framework\TestCase;

class MyTest extends TestCase {
    public function testEmailWtf() {
        $this->assertTrue(filter_var("me@gmail.com", FILTER_VALIDATE_EMAIL));
    }
}
?>

这失败了,但我不明白为什么

1) MyTest::testEmailWtf

未能断言这是错误的me@gmail.com这是真的

为什么不接受有效的电子邮件地址?

根据,
filter\u var
将在出错时返回
FALSE
,或者在一切正常时返回字符串

因此,我认为您应该使用
assertEquals
更改您的测试:

<?php
$emailToValidate = "me@gmail.com";
$this->assertEquals($emailToValidate , filter_var($emailToValidate, FILTER_VALIDATE_EMAIL));
?>


FILTER\u VALIDATE\u EMAIL
不返回布尔值。
返回值:返回筛选数据,如果筛选失败则返回FALSE。
@mario谢谢,你说得对,我没有仔细阅读手册。我可能还需要添加另一个断言
$this->assertSame(“me@gmail.com,过滤器变量('me@gmail.com",过滤(验证(电子邮件))以确保它返回我认为应该返回的内容