2013-10-21 124 views
0

我想有這樣的事情:PHP返回數組或-1

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

一切工作很好,但我知道這是不是100%正確,我回到mysqli的數組,如果它是確定或-1如果有問題。我也從服務器得到通知:注意:類mysqli_result的對象不能轉換爲int ...

那麼你怎麼看?

+0

如果您收到此通知,那麼它運行不正常。 –

+0

嘗試使用'!=='而不是'!='。 – Spudley

回答

0

從函數中返回不同的數據類型完全沒問題(大量內置函數都可以),也是PHP允許的好東西之一。它異常返回資源或整數;資源/ false或資源/ null是更常見的選項和你應該考慮的選項。

也就是說,您的代碼的通知是由於與!=進行比較的事實。如果你不改變錯誤的返回類型,使用!==代替:

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

這將阻止PHP嘗試與資源轉換爲整數。

+0

是的,我喜歡PHP,因爲有了這個,代碼可以更簡單。謝謝你的提示。我不知道!==,但我認爲我改變它返回false。 – Lodhart

0

PHP不是typesafe。所以你需要把你的返回值轉換爲int,或者重新思考你返回的值。例如。結果對象或false。