|
本帖最后由 Closer 于 2015-3-3 15:53 编辑
主要是用兩個函式來實現
floor(), abs()
網上有許多正整數的驗證方式
不乏有 正規式、(int) 轉換、is_int() 檢查...等等
但總有地方覺得不方便
最後發現到上面那兩個函式
abs()
是轉為絕對值
任何負數都會變正的
任何特殊符號或文字都會變 0
floor()
是無條件接近較小數
15 = floor(15.6)
-13 = floor(-12.3)
組合起來就是 floor(abs())
也就是說,任何進入 abs() 的無論文字/數字/符號,都會變正數或 0
因為是正數,在這種情況下的 floor() 就會無條件捨去所有小數
15 = floor(abs(-15.7)) //先轉換正數變 15.7 再捨去小數變 15
0 = floor(abs('測試')) //任何非數字的字串 abs() 都換轉換為 0
好處在於,你不必多做 if 判斷式去做驗證是否為小數、負數
floor(abs()) 直接就幫你換為正整數!
特殊情況
0 = floor(abs('測試123'))
123 = floor(abs('123測試111'))
123 = floor(abs('123*111'))
12 = floor(abs('12.3我3*1我2'))
為了避免特殊情況
變數輸入前先檢查是否為數字
is_numeric()
最近發現用 abs((int)$data) 更便捷
而且不用去檢查數據到底是甚麼型態
|
评分
-
查看全部评分
|