我需要写一个if条件来检测PHP上的空字符串。但变量也可能得到数字。所以我写下了这样的条件。变量得到零值" 0"作为数字,条件将其检测为空白""
$string = array_search("value match", $array); //$string = 0;
if($string == "")
{
echo "not equal";
}
这是PHP的错误吗?我们如何检测可能有数字或字符串的变量的空值(非空)?
答案 0 :(得分:4)
试试这个:
if ($string === "") { //With three equality signs
}
这是因为0
和""
评估为empty()
。这不是一个错误,而是松散打字的副作用。
答案 1 :(得分:2)
使用array_search
时,您需要检查错误:
if($string !== false) //Note !== rather than != (stops 0 equating to false)
否则0将被视为' falsy',即使它是有效的返回值(第一个元素/键)