如何检查变量是日期,字符串还是浮点数(数值)[PHP]

时间:2017-06-23 15:38:18

标签: php

海派,我有问题。

我的变量在我的循环中可以有不同的值:

  • 值= “10”
  • 值= “你好”
  • 值= “2015年2月17日”

如何检查条件变量的类型?我试过但字符串类型与日期类型“相等”。

3 个答案:

答案 0 :(得分:1)

您可以尝试使用php gettype()函数来查找类型

答案 1 :(得分:0)

PHP中有各种内置函数,主要以is_

开头
  • is_a is_a - 检查对象是否属于此类,或将此类作为其父类之一
  • is_array - 查找变量是否为数组
  • is_binary - 查找变量是否为本机二进制字符串
  • is_bool - 查找变量是否为布尔值
  • is_buffer - 查找变量是本机unicode还是二进制字符串
  • is_callable - 验证变量的内容是否可以作为函数调用
  • is_dir - 判断文件名是否为目录
  • is_double - is_float()的别名
  • is_executable - 判断文件名是否可执行
  • is_file - 判断文件名是否为常规文件
  • is_finite - 查找值是否为合法有限数
  • is_infinite - 查找值是否为无限
  • is_int - 查找变量的类型是否为整数
  • is_link - 判断文件名是否为符号链接
  • is_nan - 查找值是否不是数字
  • is_null - 查找变量是否为NULL
  • is_numeric - 查找变量是数字还是数字字符串
  • is_object - 查找变量是否为对象
  • is_readable - 判断文件是否存在且可读
  • is_resource - 查找变量是否为资源
  • is_scalar - 查找变量是否为标量

还有其他几个 - 有些是这里提到的一些别名 - 有些则没有。 PHP手册将提供有关每个的更多信息,但它们可用于构成变量逻辑测试的主干。

答案 2 :(得分:0)

这有点像hacky但你可以这样:

function dataType($data) {

    // is_numeric() will validate ints and floats
    if(is_numeric($data)) return "number";

    // if $data is not a valid date format strtotime() will return false
    // so we're just using it as a validator basically
    elseif(strtotime($data)) return "date";

    // is_string() does what you'd expect
    elseif(is_string($data)) return "string";

    // anything else that you're not looking for
    else return "other";

}

echo dataType("Hello"); // outputs "string"

is_numeric()会出现问题,但是如果您的号码以任何方式使用,分隔符,例如NL编号格式化1,5或英国格式化千位分隔符1,000,000

如果是这种情况,您可以使用number_format()函数解决此问题:http://php.net/manual/en/function.number-format.php