2015-04-04 44 views
3

,比如我有下面的代碼

<form action="viewer.php" method="post"> 
    <input type="number" name="roll" min="0" max="9999999" size="7" maxlength="7" required> 
</form> 

和viewer.php文件

<?php 
    $c=$_POST["roll"]; echo gettype($c); 
?> 

而且無論總是返回字符串我是否提交花車,整數或strngs -__-

和我該怎麼做得到我的預期答案?

在此先感謝

+2

因爲當從POST有效載荷('foo = 123&bar = -1'或multipart/fields)中讀取時,它們*是*所有字符串。使用['is_numeric()'](http://php.net/is_numeric)或'ctype_ *'函數來探測類型相同的內容。 – mario 2015-04-04 07:45:35

+0

使用以下代碼檢查 $ c =(is_numeric($ _ POST ['roll'])?(int)$ _ POST ['roll']:0); – 2015-04-04 07:48:29

+0

gettype()返回PHP變量var的類型。對於類型檢查,使用is_ *函數。你可以從http://www.hacksparrow.com/check-object-type-in​​-php.html獲得參考 – 2015-04-04 07:48:51

回答

2

當你要測試的對象爲特定類型的 你知道在PHP中預定義的對象類型,只要調用is_*功能進行測試。以下代碼顯示如何執行is_*測試。

  • is_null($var) - 如果是$ var是空
  • is_object($var) - 如果是$ var是一個對象
  • is_string($var) - 如果$ var是一個字符串
  • is_numeric($var) - 如果$ var是一個數字串
  • is_int($var) - 如果是$ var是一個整數
  • is_float($var) - 如果是$ var是浮點數
  • is_bool($var) - 如果$ var是一個布爾
  • is_array($var) - 如果是$ var是一個數組
  • is_resource($var) - 如果$ var是一個資源(MySQL的,文件等)。使用 get_resource_type來獲取特定的類型。
  • is_scalar($var) - 如果$ var是一個標量(基本數據類型: 整數,浮點,字符串,布爾)
  • is_callable($var) - 如果$ var是一個函數或像一個 功能