var_dump()以某种方式返回NULL

时间:2014-08-01 01:48:35

标签: php null var-dump

我创建了一个函数来验证电子邮件地址,以便检查它们是否匹配。

但它似乎不起作用,因为当我var_dump()时。

我获得了null值,例如:NULL string(13) 123@gmail.com。你能给我一些建议来解决这个问题吗?我完全卡住了。

function email_validate_n_match($value)
{

    if( $value == '') return;
    if( preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $value) ) {

        static $count = 0;

        if($count == 0) {
            $value1 = $value;
        } else if($count == 1) {
            $value2 = $value;
        }

        var_dump($value2);

        // if ($value1 == $value2) {
            //  return;
        // }else{
            //  $this->clear = false;
            //  return $this->tag_st . 'Doesn't match.' . $this->tag_ed;
        // }

        $count++;

        return;

    } else {

        $this->clear = false;

        return $this->tag_st . 'Put the correct email address.' . $this->tag_ed;
    }
}

编辑:

感谢您的回答。

当我把这个

static $count = 0;

if($count == 0) {
    $value1 = $value;
    echo '0';
} else if($count == 1) {
    $value2 = $value;
    echo '1';
}

输出01。另一方面,

如果我删除静态,我会00

所以我认为这个$count正在发挥作用,但我仍然感到困惑,为什么我上面得到NULL结果。

2 个答案:

答案 0 :(得分:1)

你设置$ count = 0,然后设置$ value1 = $ value,但是从不将$ value2设置为任何东西因为$ count不等于1,所以$ value2为null,这就是var_dump给你null的原因。然后使用$ count ++将计数增加到1,但下次运行时,count将重新设置为0.

答案 1 :(得分:1)

为什么花时间验证电子邮件,而PHP有功能为您做到这一点? 例如:

if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
 echo "valid";
}else{
 echo "not Valid";
}

在这里你可以找到更多。

<强> PHP Filters