簡體   English   中英

輸入數據驗證時filter_var和filter_input之間的差異

[英]Difference between filter_var and filter_input on input data validation

在驗證用戶輸入時使用這兩個函數之一有什么區別? 嚴格來說,關於函數調用,不需要更改$ _POST數組。

$ result = filter_var($ _ POST ['user_input'],FILTER_VALIDATE_INT);

VS

$ result = filter_input(INPUT_POST,'user_input',FILTER_VALIDATE_INT);

或者上述兩個電話之間沒有區別,甚至表現不明智,而只是一個偏好問題?

PS:我知道在SO上有一個類似的問題 - filter_var和filter_input之間的差異 - 但這只是說明應該如何調用2個方法,而不是實際的差異。

從我在php.net上看到的,

filter_var將僅適用於代碼中的任何變量,無論何時使用它,它都會檢查當時的值。

filter_input值將檢查輸入的原始值 ,這意味着如果更改$_POST['something']filter_input(INPUT-POST, "something", FILTER)將對您更改之前的值進行檢查它。 當未設置值時,它似乎也不會在執行時觸發E_NOTICE

php.net上的參考文章

如果請求主體根本不包含參數user_input$_POST['user_input']將觸發通知, filter_input(INPUT_POST, 'user_input', ..)將不會。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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