//Execute query and fetch first row
if ($qry=$db->query("SELECT statement")) {
if ($row=$qry->fetch_object()) {
}
}
//Same code as above using only one if statement
if ($qry=$db->query("SELECT statement") && $row=$qry->fetch_object()) {
}
为什么第二个代码块(作为第一个代码块的替换运行时(会产生错误"调用非对象上的函数fetch_object"?
这是因为PHP没有按照您期望的方式解析第二条语句。
它读作:
if ($qry = ($db->query("SELECT statement") && $row = $qry->fetch_object()))
正如您所看到的,这意味着$qry
在调用fetch_object
之前被设置
试着把你的陈述放在()
:中
if (($qry=$db->query("SELECT statement")) && ($row=$qry->fetch_object()))