PHP:比较混合字段



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

我试着:

if ($value != $value2)

if ($value !== $value2)

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

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

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

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

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

要确保变量转换为数字,请使用floatvalintval

同样,当比较浮点值时,检查它们的差异是一个很好的做法,像这样:

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

最新更新