PHP:比较混合字段

时间:2011-11-05 22:09:49

标签: php

如何比较字符串或整数字段?我得到了非常奇怪的结果,PHP解释它们相等时的值是不同的等等。

我试过了:

if ($value != $value2)

以及

if ($value !== $value2)

但在这两种情况下我都会遇到问题(例如1.4536由于某种原因一直不等于1.4536,我真的不知道为什么)

3 个答案:

答案 0 :(得分:0)

将它们两种类型转换为一种类型。例如:

if ((int)$value1 != (int)$value2) { ... }

答案 1 :(得分:0)

只需使用===,它不仅可以比较值,还可以比较变量类型,从而解决您的问题:

$s1 = '1.4536';
$s2 = 1.4536;

if ($s1 === $s2)
  echo 'passed';
else
  echo 'failed';

答案 2 :(得分:0)

要确保将变量投放到数字中,请使用floatvalintval

此外,在比较浮动值时,最好检查它们之间的差异:

<?php
if (abs(floatval($s1)-floatval($s2)) < 0.00001) {
  echo 'passed';
} else {
  echo 'failed';
}