Thursday, December 6, 2012

[PHP] 函式回傳值=0時,應該注意if()的判斷結果 (以fwrite為例)

我們常常會利用函式的回傳值去判斷有沒有執行成,例如:
if(mkdir('mydir')){echo '執行成功';}
但是,有些函式執行成功時,回傳值是數字,以fwrite()來說,執行成功的話,回傳值則是寫入的字數,當寫入的內容是空值時,fwrite()還是可以執行,回傳值則是0,所以,當我們利用fwrite()建立文件並寫入資料時,即便寫入的內容是空值,仍然可以建立該份文件。
實務上,我們利用if來判斷fwrite()有沒有執行成功時,如果發生寫入內容是空值,雖然執行成功,但是因為回傳值是0,所以,if(0)的判斷結果是不成立,容易誤以為執行是失敗的,建議應該改成if(fwrite(...) === false){ echo '執行失敗';}

No comments:

Post a Comment