PHP if/else没有正常工作

PHP if/else没有正常工作,php,if-statement,Php,If Statement,我有以下代码: if($value1 >= $value2){ echo "Value 1 is greater or equal to value 2"; }else{ echo "Something else"; } 变量$value1和$value2的值来自数据库。问题是,每当这个代码运行时,它总是回显“其他东西”。即使值1大于值2 这两个变量都是数字。当我回应他们时: echo $value1 . " and " . $value2; 我得到以下结果:1300和

我有以下代码:

if($value1 >= $value2){
    echo "Value 1 is greater or equal to value 2";
}else{
    echo "Something else";
}
变量$value1和$value2的值来自数据库。问题是,每当这个代码运行时,它总是回显“其他东西”。即使值1大于值2

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

echo $value1 . " and " . $value2;
我得到以下结果:
1300和500

有人知道是什么导致了这个问题吗

我有以下结果:1300和500

您的值是字符串数据,而不是数字数据。它们只是碰巧包含数字字符的字符串。由于字符
'1'
小于字符
'5'
,因此字符串
'1300'
小于字符串
'500'

将字符串转换为整数。比如:

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

您也可以将数字版本存储在变量中,以供以后使用,可能包括一些错误检查,以确定是否存在非数字字符串等。但最终不要因为某个值直观上看起来像一个数字就假定它是数字。数据类型很重要

我有以下结果:1300和500

您的值是字符串数据,而不是数字数据。它们只是碰巧包含数字字符的字符串。由于字符
'1'
小于字符
'5'
,因此字符串
'1300'
小于字符串
'500'

将字符串转换为整数。比如:

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

您也可以将数字版本存储在变量中,以供以后使用,可能包括一些错误检查,以确定是否存在非数字字符串等。但最终不要因为某个值直观上看起来像一个数字就假定它是数字。数据类型很重要

  • 比较两个或多个值背后的主要概念是,确保同一数据类型中的所有值都是数值,我们可以将转换字符串值键入它们所尊重的类型(即int、decimal或float等)

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

  • 比较两个或多个值背后的主要概念是,确保同一数据类型中的所有值都是数值,我们可以将转换字符串值键入它们所尊重的类型(即int、decimal或float等)

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

  • 那是不可能的。请在if条件之前回显
    $value和$value2
    ,我怀疑$value1实际上是>=$value2。是否将字符串与数字进行比较?请运行
    var\u dump($value1,$value2)并将结果张贴在此处。这些值不是您假定的值。如果您可能得出的唯一结论是PHP本身已损坏,并且您不可能犯了错误,那么您的调试不会走得太远,它甚至可以与字符串一起工作。我认为,
    $value
    可能未定义。这是不可能的。请在if条件之前回显
    $value和$value2
    ,我怀疑$value1实际上是>=$value2。是否将字符串与数字进行比较?请运行
    var\u dump($value1,$value2)并将结果张贴在此处。这些值不是您假定的值。如果您可能得出的唯一结论是PHP本身已损坏,并且您不可能犯了错误,那么您的调试不会走得太远,它甚至可以与字符串一起工作。我想,
    $value
    可能没有定义。就这么简单。。。非常感谢你!就这么简单。。。非常感谢你!