Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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中的两个变量是否相同?_Php - Fatal编程技术网

如何检查php中的两个变量是否相同?

如何检查php中的两个变量是否相同?,php,Php,我想将日期与数据库进行比较?所以我从那天起就预演了所有特别的角色。但有些人认为,如果两个值不相同,它总是会返回真值。我做错了什么请帮忙 //input value $user_dob = $_POST['user_dob']; $preg_input_dob = preg_replace("/[^a-zA-Z0-9\s]/", "",$user_dob); //output 18101984 //db value $date_of_birth = $user_info-&g

我想将日期与数据库进行比较?所以我从那天起就预演了所有特别的角色。但有些人认为,如果两个值不相同,它总是会返回真值。我做错了什么请帮忙

//input value
$user_dob       = $_POST['user_dob'];
$preg_input_dob  = preg_replace("/[^a-zA-Z0-9\s]/", "",$user_dob); //output 18101984



//db value 
$date_of_birth = $user_info->date_of_birth;
$preg_db_dob  = preg_replace("/[^a-zA-Z0-9\s]/", "", $date_of_birth); //output 18101984


if($preg_input_dob != $preg_db_dob ){
    echo "Date of birth mismatch";
}else{
    echo "Your date of birth is correct";
}

这里的一种解释是日期字符串中实际上有空格。请注意,您的正则表达式替换实际上保留了空格字符。因此,您可以尝试以下方法:

$user_dob = $_POST['user_dob'];
$preg_input_dob  = preg_replace("/[^a-zA-Z0-9]/", "", $user_dob);
$date_of_birth = $user_info->date_of_birth;
$preg_db_dob = preg_replace("/[^a-zA-Z0-9]/", "", $date_of_birth);

if ($preg_input_dob != $preg_db_dob) {
    echo "Date of birth mismatch";
}
else {
    echo "Your date of birth is correct";
}

顺便说一下,您希望数据库表中的文本值为18101984,这可能意味着您将日期存储为文本,而不是日期。理想情况下,您应该能够直接将MySQL日期整理成PHP脚本中的日期变量。

您应该使用PHP时间戳来比较日期,使用strotime$date函数将日期转换为时间戳。它将采用整数格式,以秒为单位,然后您可以轻松地比较它们

至少添加一条解释反对票的注释,以便我能够理解: