数据类型及其在PHP中的比较

时间:2011-12-07 22:10:27

标签: php

我在PHP中不是很有经验。我面临的问题是:

print "post: {$_POST['var']} session: {$_SESSION['var']}\n";

假设这打印2个相等的输出。

然后

if($_POST['var'] == $_SESSION['var']){
...
}

从不评估为真。我该怎么做才能解决它?

4 个答案:

答案 0 :(得分:2)

尝试以下方法:

if (trim($_POST['var']) == trim($_SESSION['var'])) {
  // ...
}

您还可以使用$_SESSION['var']检查$_POST['var']var_dump的内容,看看它们是否匹配:

var_dump($_POST['var']);
var_dump($_SESSION['var']);

答案 1 :(得分:1)

我不认为它可能是数据类型问题(除非它们可能是浮点数)但是如果你想检查它们是否是同一类型,那么使用===。我的猜测是,其中一个中有一个胭脂空间,当你打印出来时你无法检测到。你能举出打印出来的例子吗?

答案 2 :(得分:0)

<?php

$_SESSION['var'] = "Variable";
$_POST['var'] = "Variable";

if($_POST['var'] == $_SESSION['var'])
    print 1;
else
    print 2;

?>

结果是1.您比较的变量值是多少?

答案 3 :(得分:0)

我认为这不是数据类型问题,但如果你想在php中比较数据类型,你可以执行以下操作:

if($_POST['var'] === $_SESSION['var']){
    ...
}

或者,您可以通过执行以下操作来转换数据类型:(int)(array)(object)

$a = (int)$_POST['var'];
$b = (int)$_SESSION['var'];

if($a === $b) {
    ...
}