array(4) { ["id"]=> int(0) ["pass"]=> string(0) "" ["log_in"]=> string(3) "no" }
使用id
时isset
中的问题返回true
,因为它是0
。当使用空时我认为它也是这样做的。知道它是否已设定的最佳功能是什么?
答案 0 :(得分:5)
empty
为这些返回false:
""
(空字符串)0
(0为整数)"0"
(0为字符串)NULL
FALSE
array()
(空数组)var $var
(声明的变量,但类中没有值)您需要使用isset
来检查它是否存在。
有关详细信息,请参阅empty vs isset上的这篇文章。
答案 1 :(得分:2)
if($array['id'] === 0) {
true
} ?
答案 2 :(得分:1)
答案 3 :(得分:1)
一个简单的if条件会为你做什么
if(id) { }
尝试它是否有效。
答案 4 :(得分:1)
如果id是数据库id,则为正整数
所以if($id>0)
是一个简单的解决方案
OR
preg_match('#^[0-9]*$#', $id)
另一个