基本的PHP逻辑问题

时间:2010-05-12 09:15:23

标签: php logic

$this->totplpremium is 2400
$this->minpremiumq is 800

那么为什么这会回归真实?!

if ($this->totplpremium < $this->minpremiumq){

这些数字绝对正确,我绝对使用'小于'符号。我无法解决这个问题。

4 个答案:

答案 0 :(得分:3)

也许存在某种转换问题。尝试使用

var_dump($this->totplpremium);
var_dump($this->minpremiumq);
if ($this->totplpremium < $this->minpremiumq){
  ...
}

查看数据类型是否正常

编辑:有一些工具可以让你比使用调试输出更容易调试你的代码 - http://xdebug.org/(PHP的扩展,使你能够调试)和http://en.wikipedia.org/wiki/PHPEd(它是商业的。我不是知道是否有替代方案。)

答案 1 :(得分:2)

尝试用intval包装'numbers':

if (intval($this->totplpremium) < intval($this->minpremiumq)){
//...
}

如果按预期方式工作,那么您确实需要使用gettype检查totplpremium和minpremiumq的类型,例如:

print(gettype($this->totplpremium));
print(gettype($this->minpremiumq));

使用该信息,您应该能够查明错误。

答案 2 :(得分:0)

作为按字母顺序排列的比较,以下陈述是正确的:

"800" > "2400"

(因为8大于2)

答案 3 :(得分:0)

<?php

$totplpremium="2400 ";
$minpremiumq="800";

var_dump(($totplpremium < $minpremiumq)?true:false);
var_dump(((int)$totplpremium < (int)$minpremiumq)?true:false);

?>

我猜你应该仔细检查这些值来自何处或确保它们是整数。

祝你好运!