php-mysqli结果对象不能在if语句中立即被引用


php mysqli result object cannot immediately be referenced in if statement...?

//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()))