0

我想要这样的东西:

if (($sqlResult = returnArrayAfterSQLResult(...)) != -1) {
  getRow($sqlResult);
  /* ... */
} else {
  /* handling error */
}

一切都运行良好,但我知道我返回 mysqli 数组(如果没问题)或 -1(如果有问题)不是 100% 正确的。而且我还收到来自服务器的通知:注意:类 mysqli_result 的对象无法转换为 int in ...

那么你怎么看?

4

2 回答 2

0

从函数返回不同的数据类型是完全可以的(很多内置函数都可以做到),也是 PHP 允许的好事之一。返回资源或整数是不寻常的resource/false或 resource/null是更常见的选项,也是您应该考虑的选项。

也就是说,您的代码中的通知是由于比较是用!=. 如果您不更改错误返回类型,请!==改用:

if (($sqlResult = returnArrayAfterSQLResult(...)) !== -1)

这将阻止 PHP 尝试将资源转换为整数。

于 2013-10-21T08:12:29.397 回答
0

PHP isnt typesafe. So you need to cast your return to an int, or rethink what values you are returning. E.g. the result object or false.

于 2013-10-21T08:07:15.230 回答