我想有这样的事情:
if (($sqlResult = returnArrayAfterSQLResult(...)) != -1) {
getRow($sqlResult);
/* ... */
} else {
/* handling error */
}
一切都运行良好,但我知道,如果它正常,我将返回mysqli数组100%正确,如果有问题则返回-1。我也从服务器得到通知:注意:类mysqli_result的对象无法在...中转换为int。
那你觉得怎么样?
答案 0 :(得分:0)
PHP不是类型安全的。因此,您需要将返回转换为int,或重新考虑返回的值。例如。结果对象或false。
答案 1 :(得分:0)
从函数中返回不同的数据类型是完全可以的(很多内置函数都可以做到),这也是PHP允许的好东西之一。返回资源或整数 异常;资源/ false
或资源/ null
是更常见的选项和您应该考虑的选项。
也就是说,您的代码中的通知是由于与!=
进行比较的结果。如果您不更改错误返回类型,请改为使用!==
:
if (($sqlResult = returnArrayAfterSQLResult(...)) !== -1)
这将阻止PHP尝试将资源转换为整数。