PHP if / else不能正常工作

时间:2016-11-18 15:06:11

标签: php if-statement

我有以下代码:

if($value1 >= $value2){
    echo "Value 1 is greater or equal to value 2";
}else{
    echo "Something else";
}

变量$ value1和$ value2的值来自数据库。问题是每当这段代码运行时,它总是回显“其他东西”。即使value1大于value2。

两个变量都是数字。当我回应他们时:

echo $value1 . " and " . $value2;

我有以下结果:1300 and 500

有谁知道造成这个问题的原因是什么?

2 个答案:

答案 0 :(得分:2)

  

我有以下结果:1300和500

您的值是字符串数据,而不是数字数据。它们只是恰好包含数字字符的字符串。由于字符'1'“小于”字符'5',字符串'1300'“小于”字符串'500'

将字符串转换为整数。类似的东西:

if((int)$value1 >= (int)$value2)

或:

if(intval($value1) >= intval($value2)){

您还可以将数值版本存储在自己的变量中以供以后使用,也可以包括一些错误检查,以查找非数字字符串的可能性等。但最终不要假设值是数字只是因为它直观地看起来像一个数字。数据类型很重要。

答案 1 :(得分:0)

  

  • 两个或多个值之间进行比较的主要概念是确保数值的相同数据类型中的所有值都可以将类型转换为字符串值(即int,decimal或float等)... )。

    • 当我们使用少于“<”时或者大于“>”运算符大多数时间值(即索引等)都是整数数据类型。这适用于所有最常见的编程语言。