Is_numeric()
以及is_int()
如果值爲0,則返回false。我可以做些什麼來驗證特定值是否只是PHP中的數字?PHP:Is_numeric在0上返回false
我們是否直奔正規表達陣營,還是有一些不錯的,方便的功能呢?
謝謝!
Is_numeric()
以及is_int()
如果值爲0,則返回false。我可以做些什麼來驗證特定值是否只是PHP中的數字?PHP:Is_numeric在0上返回false
我們是否直奔正規表達陣營,還是有一些不錯的,方便的功能呢?
謝謝!
重新啓動服務器上的PHP,現在運行良好。不知道爲什麼它發生。謝謝大家的幫助!
這是在兩種情況下返回我真:
var_dump(is_numeric(0));
var_dump(is_int(0));
結果:
bool(true)
bool(true)
很奇怪。不知道爲什麼我的測試(Windows)環境確實返回false。 – Industrial 2010-05-05 15:23:03
var_dump(is_int("0"));
將通過假的,因爲你是零把它當作一個字符串。你可以嘗試傳遞一個經歷過的變量(我相信)parseInt(「」);
雖然我的php可能有點關閉,在上個星期或上兩個星期不停地進行JavaScript腳本編程。
嗨!該字符串不作爲字符串傳遞。 – Industrial 2010-05-05 15:26:11
@Industrial這是一個悖論;) – Gordon 2010-05-05 15:29:08
@ Gordon Duuh。那絕對是名氣之牆。傳遞的值不是一個字符串,而只是一個數字。我希望這可以理解;) – Industrial 2010-05-05 21:02:23
零,因爲整數是空的。 因此,在檢查Is_numeric()或is_int()之前,確保沒有空的檢查。
謝謝!令人驚訝的是,這正是我正在做的! :) – 2016-12-23 06:55:16
當您處理REQUEST時,最好先使用filter_input檢查輸入。以下是$ _GET中的一個檢查'id'的示例。
filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT)
完整例子
if (is_int(filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT))) {
$id = $_GET['id'];
} else {
die('please input a integer');
}
好了,功能拿出PHP版本> = 5.2。
我在同樣的問題上苦苦掙扎,它碰巧在號碼後面有一個空格。
長話短說,什麼都數爲:
is_numeric(" 0.0") --> YES
is_numeric("0.0 ") --> NO
下面是一個例子...
public function getCoordinates()
{
return sprintf('%1$f , %2$f',$this->getLatitude(),$this->getLongitude());
}
在後面的過程中...
$myarr = explode(",",$_ScreenCoordinates);
echo "_ScreenCoordinates:$_ScreenCoordinates<br>";
echo "myarr[0]:".$myarr[0]." - ".((is_numeric($myarr[0]))?"YES":"NO")."<br>";
echo "myarr[1]:".$myarr[1]." - ".((is_numeric($myarr[1]))?"YES":"NO")."<br>";
echo "trimmed[0]:".$myarr[0]." - ".((is_numeric(trim($myarr[0])))?"YES":"NO")."<br>";
印刷屏幕上:
Array ([0] => 1.200000 [1] => 123.456000)
_ScreenCoordinates:1.200000 , 123.456000
myarr[0]:*1.200000 * - NO
myarr[1]:* 123.456000* - YES
trimmed[0]:*1.200000 * - YES
這也可能發生,如果這0
實際上是一個布爾FALSE
。 is_numeric()
對於布爾值總是返回FALSE
。
no repro,'is_numeric(0)'爲我返回'bool(true)'。與'is_int'相同 – SilentGhost 2010-05-05 15:17:50
@Industrial:你確定嗎? HTTP://www.ideone。com/h5CSa – kennytm 2010-05-05 15:18:35
你確定它不是一個字母O而不是一個零? – 2010-05-05 15:18:37