PHP:为什么当程序以相同的值打印时,程序不会将值比较为相等

时间:2013-04-30 07:29:01

标签: php integer equality

我有一个系统代码:

//get new data from text fields
$i = 0;
$data = array();
while ($i < 7){
    $data[$i] = $_POST['t'.$i];
    $i++;
}

//get the ID to use in the MySQL database query
$id=$data[0];

//get the existing integer from MySQL database
$query="SELECT * FROM tbl WHERE ID='$id';";
$result=mysql_query($query) or die(mysql_error());
$mem=mysql_result($result, 0, 'Member');

//print to see if it's equal
echo 'Does '.$mem.'='.$data[1].'?<br>';

//check equality
if ($mem != $data[1]){
    echo "I'm not supposed to exist";
}

$ data [0]是该数据库表的唯一ID,$ data [1]是我们想要得到的。

代码打印$mem999999.$data[0]相同,999999.但由于某种原因,当我通过if语句传递它们时,它们是不平等。

1 个答案:

答案 0 :(得分:2)

将它们转换为int

if ((int)$mem != (int)$data[1]){
    echo "I'm not supposed to exist";
}

你写数据[0]等于$ mem你比较$ data [1]