protected static function typeof($v): string
    {
        if (is_bool($v)) {
            return 'bool';
        } elseif (is_int($v)) {
            return 'int';
        } elseif (is_float($v)) {
            return 'float';
        } elseif (is_string($v)) {
            return 'string';
        } elseif (is_array($v)) {
            return 'array';
        } elseif (is_resource($v)) {
            return 'resource';
        }
        return get_class($v);
    }
protected static function typeof($v): string
    {
        if (is_bool($v)) {
            return 'bool';
        } elseif (is_int($v)) {
            return 'int';
        } elseif (is_float($v)) {
            return 'float';
        } elseif (is_string($v)) {
            return 'string';
        } elseif (is_array($v)) {
            return 'array';
        } elseif (is_resource($v)) {
            return 'resource';
        }
        return get_class($v);
    }
protected static function typeof ( $ v ) : string { if ( is_bool ( $ v ) ) { return 'bool' ; } elseif ( is_int ( $ v ) ) { return 'int' ; } elseif ( is_float ( $ v ) ) { return 'float' ; } elseif ( is_string ( $ v ) ) { return 'string' ; } elseif ( is_array ( $ v ) ) { return 'array' ; } elseif ( is_resource ( $ v ) ) { return 'resource' ; } return get_class ( $ v ) ; }
More predictable results than `gettype`.

@param mixed $v The value to evaluate
More predictable results than gettype .