[英]PHP: is it wasteful doing all these checks?
我將要編寫這樣的IF條件:
if (isset($_GET['code']) && !empty($_GET['code']) && ctype_digit($_GET['code'])){
//other code here
}
我的意思是,當然,如果我只檢查:
if(ctype_digit($_GET['code'])){ }
當然$ _GET ['code']存在,並且它不是空的,以這種方式寫條件式不是很浪費嗎?
在調用該函數之前,有必要檢查$_GET['code']
是否已設置: ctype_digit()
如果未設置$_GET['code']
,則會收到類似以下消息:
注意:未定義的索引:第2行的C:\\ xampp \\ htdocs \\ index.php中的代碼
我要說的是,驗證您的輸入並不是浪費,但是如果您再寫一次,那就是浪費了。 我將創建一個名為isDigit()和required()的方法或函數,並使用這些方法或函數檢查您的輸入。 作為代碼回顧說明,如果您知道是否需要什么,則應該已經在代碼的開頭驗證了$ _GET中的必填字段。 (實際上,我什至不直接調用$ _GET,而是讓它在從外部驗證和清除數據的對象中進行處理。)
這取決於您的錯誤處理。 如果您省略第一個檢查,並且$_GET
數組中不存在帶有鍵“代碼”的元素,則將引發E_NOTICE
。 並且,例如,如果在這種情況下服務器響應500錯誤,則用戶將看到一個討厭的500頁面。 如果您為E_NOTICE禁用了錯誤報告功能,則可以省略第一拳和第二拳。
使用isset()
和ctype_digit()
應該沒問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.