如何对字符串或整数字段进行比较?我得到非常奇怪的结果,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';
要确保变量转换为数字,请使用floatval
或intval
。
同样,当比较浮点值时,检查它们的差异是一个很好的做法,像这样:
<?php
if (abs(floatval($s1)-floatval($s2)) < 0.00001) {
echo 'passed';
} else {
echo 'failed';
}