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
可能没有定义。就这么简单。。。非常感谢你!就这么简单。。。非常感谢你!