我的变量在我的循环中可以有不同的值:
如何检查条件变量的类型?我试过但字符串类型与日期类型“相等”。
答案 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