簡體   English   中英

PHP:做所有這些檢查浪費嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM