2014-02-16 60 views
0

這是簡單的代碼時輸入號碼,然後信它讀起來就像數

$value=($_POST['value']>0)?"number":"string"; 
echo $value; 

當我插入一些東西一樣123ABC這段代碼打印張數,但如果我插入像ABC123此代碼打印字符串
現在我用很多的,如果語法和每當插入123ABC它總是打印數量 ,如果我這樣使用它

$value=$_POST['value']*1; 
echo $value; 

當我插入一些東西一樣123ABC這段代碼打印123,而是時間,如果我插入一些升IKE ABC123此代碼打印0


現在的主要問題是,爲什麼代碼工作ILKE這
,是有簡單的方法來對待這一點,確保它的數量之前,我在數據庫中插入或任何

+0

因爲這是......哦,等等,我已經說了這個笑話。 –

+1

這或多或少是未定義的行爲,你不應該指望它。相反,使用'is_numeric()'。 – kba

+1

@kba:完美定義。瘋狂,但定義。 –

回答

2

做到這一點因爲如果$_POST['value']檢查是字符串或數字,如果高於0.1

$value=is_numeric($_POST['value']) && ($_POST['value']>0) ? "number":"string"; 

如果$_POST['value']abc123123abc它會打印「弦」,如果它只是123,它會打印「數字」。

值由所述串的初始部分給出:

Demo

their documentation狀態PHP。如果字符串 以有效數字數據開頭,則這將是使用的值。 否則,該值將爲0(零)。有效的數字數據是一個可選符號 ,後跟一個或多個數字(可選包含小數點 ),後跟可選的指數。指數是 'e'或'E'後跟一個或多個數字。

相關問題