在我的PHP Web應用程序中,我通常使用自定義函數驗證用戶輸入,如果輸入與驗證條件不匹配,則返回NULL;如果驗證條件滿足,則返回原始輸入值。因此,一個基本的流程會是這個樣子:返回NULL用於輸入驗證
$user_input = $_POST['fieldname'];
$user_input = validation_function($user_input);
if (isset($user_input)) {
// do stuff
}
關於這樣做的好處是,我可以採取任意數量的用戶輸入,對其進行驗證,然後將它們粘到isset()
功能參數,因爲isset()
函數需要可變數量的參數。
現在,我一直在閱讀很多有關NULL返回是否很糟糕的問題,並且這個問題"Is returning null bad design?"有一個很好的答案,基本上聲明「不返回null的基本原理是您不必檢查因此,因此您的代碼不需要遵循基於返回值「」的不同路徑。我理解這在應用程序的內部工作中是如何有益的,但是如何將此原則應用於輸入驗證?
問題的關鍵是,我如何處理輸入驗證,而不必像上面提供的代碼示例那樣返回NULL?
有趣,謝謝。我看到你已經寫了一篇關於isset正確使用的非常好的帖子,並沒有鏈接到它。推薦閱讀其他人:http://kunststube.net/isset –