我从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"
现在,它只是我,还是没有任何意义?
答案 0 :(得分:2)
转换为数字的文本字符串始终为0:(int) 'This is Text'
等于0.
您可以使用empty()
函数或is_numeric()
,然后使用代码:
if (empty($var))
(检查$var
是""
(空字符串),0
(0作为整数),0.0
(0作为浮点数),{ {1}}(0为字符串),"0"
,NULL
或FALSE
)。
或
array()
答案 1 :(得分:0)
这是因为你要将文字与数字进行比较。这将始终比较0到0
答案 2 :(得分:0)
如果您指的是为什么"This is text" == 0
,那是因为PHP是松散类型的,当您将字符串与整数进行比较时,字符串将转换为0
。
这可能不是所需的行为,因此您需要使用等于运算符,例如
`"This is text" == 0` // True
`"This is text" === 0` // False
答案 3 :(得分:0)
if (isset($products[2]['p_name']) && !empty($products[2]['p_name']) )
{
//your code
}