在一个if中设置result并检查rowcount


set result and check rowcount in one if

为什么这不起作用?

if($result = $db->execute($params) && $result->rowCount() > 0)

当$db->execute失败时,我得到一个错误,$result是非对象。

当然是。$result等于FALSE,所以它应该跳过rowCount检查,不是吗?

if($result = $db->execute($params) && $result->rowCount() > 0)

与相同

if($result = ($db->execute($params) && $result->rowCount() > 0))

你应该做

if(($result = $db->execute($params)) && ($result->rowCount() > 0))

或者,更好的是:

$result = $db->execute($params);
if($result && $result->rowCount() > 0)