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