2015-04-04 46 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是一个函数或像一个 功能