PHP中的简单比较如果($ var == 0)不起作用?

时间:2012-02-04 18:12:16

标签: php

我从MySQL数据库获取数据并尝试检查列中是否包含数据。这是一个数组元素的样子:

[2] => Array 
(   
        [p_name] => This is text
)

现在我有以下声明:

if($products[2]['p_name'] == 0)
      echo '$products[2][\'p_name\'] == 0';

输出结果为:

"$products[2]['p_name'] == 0"

现在,它只是我,还是没有任何意义?

4 个答案:

答案 0 :(得分:2)

转换为数字的文本字符串始终为0:(int) 'This is Text'等于0.

您可以使用empty()函数或is_numeric(),然后使用代码:

if (empty($var))

(检查$var""(空字符串),0(0作为整数),0.0(0作为浮点数),{ {1}}(0为字符串),"0"NULLFALSE)。

array()

答案 1 :(得分:0)

这是因为你要将文字与数字进行比较。这将始终比较0到0

答案 2 :(得分:0)

如果您指的是为什么"This is text" == 0,那是因为PHP是松散类型的,当您将字符串与整数进行比较时,字符串将转换为0

这可能不是所需的行为,因此您需要使用等于运算符,例如

`"This is text" == 0` // True
`"This is text" === 0` // False

Demo

答案 3 :(得分:0)

if (isset($products[2]['p_name']) && !empty($products[2]['p_name']) ) 
{
    //your code
}