2014-05-16 70 views
1

如果一個字符串/ int可以安全地轉換爲一個int是否有PHP中的函數返回true? 像這樣:功能來檢查一個整數是否在PHP中有效

var_dump(f('1'));//returns true 
var_dump(f(1));//returns true 
var_dump(f('1.2'));//returns false 
var_dump(f(-2));//returns true 
var_dump(f('3x'));//returns false 

我不關心基地。
我簽出了is_int,但is_int('4')返回false。
我可以用鑄造/ INTVAL,但:
intval('6x')回報6,和intval('x')返回0一樣intval(0)intval('0')

+0

'函數f($ I){回報 「$ I」 === 「」(INT)$我。 }' –

+0

不錯,但我更喜歡更原生的解決方案,與文檔和whatnot。 – user3004771

回答

7

使用filter_var()

if (filter_var('1', FILTER_VALIDATE_INT)) { 
    echo 'int'."<br>"; 
} 
if (!filter_var('dog', FILTER_VALIDATE_INT)) { 
    echo 'not int'."<br>"; 
} 

Demo

+0

太棒了,謝謝。 – user3004771

-2

功能is_int( )是你應該使用的。

爲什麼

is_int('4') 

將返回錯誤的原因是因爲它不是一個整數。當你在整數週圍添加引號時,PHP會認爲它是一個字符串 - 因此是「假」返回。

嘗試了這一點:

is_int(4) 
+1

謝謝,但重點是要檢查一個字符串是否是int。 – user3004771

+0

一個字符串不是一個整數,這只是一個基本的數據類型事實。你想檢查一個字符串是否包含一個整數? –

+0

不,一個字符串不是一個整數。但我想檢查給定的字符串是否可以安全地轉換爲int。 – user3004771

相關問題