目前我使用這種方法:
- 驗證輸入使用
isset($val) && is_numeric($val)
- 將其轉換爲
int
並將其傳遞給函數:DoSomething((int)$val);
所以我的問題是這樣的:這是最快和最實際的方式來做到這一點?如果我將值轉換爲int
,那麼int
的範圍足以滿足mysql
數據庫中的最大行數?
目前我使用這種方法:
isset($val) && is_numeric($val)
int
並將其傳遞給函數:DoSomething((int)$val);
所以我的問題是這樣的:這是最快和最實際的方式來做到這一點?如果我將值轉換爲int
,那麼int
的範圍足以滿足mysql
數據庫中的最大行數?
看來這個方法是相當多餘的。
無論是驗證還是施放 - 無需同時執行這兩項操作。
而這顯然不是一個需要「最快」的地方。
PHP提供集成的basic filter & validation functions。
快速看一下PHP手冊頁猛說:
$foo = 5a;
settype($foo, "integer"); // $foo is now 5 (integer)
和: /*檢查一個字符串是否與之前和/或之後可能空白的整數,也隔離整數*/
$isInt=preg_match('/^\s*([0-9]+)\s*$/', $myString, $myInt);
'filter_var($ value,FILTER_VALIDATE_INT)' – Gordon 2012-01-31 13:23:43
請一次只詢問一個問題。 – hakre 2012-01-31 13:31:55