gettype获取变量的类型

string gettype ( mixed $var )  返回 PHP 变量的类型 var .

PHP manual 有个大大的warning:

不要使用 gettype() 来测试某种类型,因为其返回的字符串在未来的版本中可能需要改变。此外,由于包含了字符串的比较,它的运行也是较慢的。

使用 is_* 函数代替。

但是有时候 我们又不得不使用gettype这样的功能来判断参数的类型,这个时候我们应该怎么办?O(∩_∩)O哈哈~ 热心的网友已经帮我们重新实现了这个逻辑。代码如下:

 
function get_type($var)
{
    if (is_object($var)) {
        return get_class($var);
    }
    if (is_null($var)) {
        return 'null';
    }
    if (is_string($var)) {
        return 'string';
    }
    if (is_array($var)) {
        return 'array';
    }
    if (is_int($var)) {
        return 'integer';
    }
    if (is_bool($var)) {
        return 'boolean';
    }
    if (is_float($var)) {
        return 'float';
    }
    if (is_resource($var)) {
        return 'resource';
    }
    return 'unknown';
}

另一个版本

/**
 * Returns the type of the var passed.
 *
 * @param mixed $var Variable
 *
 * @return string Type of variable
 */
function myGetType($var)
{
    if (is_array($var)) {
        return "array";
    }
    if (is_bool($var)) {
        return "boolean";
    }
    if (is_float($var)) {
        return "float";
    }
    if (is_int($var)) {
        return "integer";
    }
    if (is_null($var)) {
        return "NULL";
    }
    if (is_numeric($var)) {
        return "numeric";
    }
    if (is_object($var)) {
        return "object";
    }
    if (is_resource($var)) {
        return "resource";
    }
    if (is_string($var)) {
        return "string";
    }
    return "unknown type";
}