PHP返回数组或-1

时间:2013-10-21 07:59:24

标签: php mysql

我想有这样的事情:

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

一切都运行良好,但我知道,如果它正常,我将返回mysqli数组100%正确,如果有问题则返回-1。我也从服务器得到通知:注意:类mysqli_result的对象无法在...中转换为int。

那你觉得怎么样?

2 个答案:

答案 0 :(得分:0)

PHP不是类型安全的。因此,您需要将返回转换为int,或重新考虑返回的值。例如。结果对象或false。

答案 1 :(得分:0)

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

也就是说,您的代码中的通知是由于与!=进行比较的结果。如果您不更改错误返回类型,请改为使用!==

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

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