src/Debug/Abstracter.php
public static function getType($val, &$typeMore = null)
    {
        if (\is_string($val)) {
            $type = 'string';
            if (\is_numeric($val)) {
                $typeMore = 'numeric';
            } elseif ($val === self::UNDEFINED) {
                $type = 'undefined';    // not a native php type!
            } elseif ($val === self::RECURSION) {
                $type = 'recursion';    // not a native php type!
            }
        } elseif (\is_array($val)) {
            if (\in_array(self::ABSTRACTION, $val, true)) {
                $type = $val['type'];
                $typeMore = 'abstraction';
            } elseif (AbstractArray::isCallable($val)) {
                $type = 'callable';
                $typeMore = 'raw';  // needs abstracted
            } else {
                $type = 'array';
                $typeMore = 'raw';  // needs abstracted
            }
        } elseif (\is_bool($val)) {
            $type = 'bool';
            $typeMore = \json_encode($val);
        } elseif (\is_float($val)) {
            $type = 'float';
        } elseif (\is_int($val)) {
            $type = 'int';
        } elseif (\is_null($val)) {
            $type = 'null';
        } elseif (\is_object($val)) {
            $type = 'object';
            $typeMore = 'raw';  // needs abstracted
        } elseif (\is_resource($val) || \strpos(\print_r($val, true), 'Resource') === 0) {
            // is_resource() returns false for a closed resource
            // (it's also not a string)
            $type = 'resource';
            $typeMore = 'raw';  // needs abstracted
        }
        return $type;
    }
public static function getType($val, &$typeMore = null)
    {
        if (\is_string($val)) {
            $type = 'string';
            if (\is_numeric($val)) {
                $typeMore = 'numeric';
            } elseif ($val === self::UNDEFINED) {
                $type = 'undefined';    // not a native php type!
            } elseif ($val === self::RECURSION) {
                $type = 'recursion';    // not a native php type!
            }
        } elseif (\is_array($val)) {
            if (\in_array(self::ABSTRACTION, $val, true)) {
                $type = $val['type'];
                $typeMore = 'abstraction';
            } elseif (AbstractArray::isCallable($val)) {
                $type = 'callable';
                $typeMore = 'raw';  // needs abstracted
            } else {
                $type = 'array';
                $typeMore = 'raw';  // needs abstracted
            }
        } elseif (\is_bool($val)) {
            $type = 'bool';
            $typeMore = \json_encode($val);
        } elseif (\is_float($val)) {
            $type = 'float';
        } elseif (\is_int($val)) {
            $type = 'int';
        } elseif (\is_null($val)) {
            $type = 'null';
        } elseif (\is_object($val)) {
            $type = 'object';
            $typeMore = 'raw';  // needs abstracted
        } elseif (\is_resource($val) || \strpos(\print_r($val, true), 'Resource') === 0) {
            // is_resource() returns false for a closed resource
            // (it's also not a string)
            $type = 'resource';
            $typeMore = 'raw';  // needs abstracted
        }
        return $type;
    }
public static function getType ( $ val , & $ typeMore = null ) { if ( \ is_string ( $ val ) ) { $ type = 'string' ; if ( \ is_numeric ( $ val ) ) { $ typeMore = 'numeric' ; } elseif ( $ val === self :: UNDEFINED ) { $ type = 'undefined' ; // not a native php type! } elseif ( $ val === self :: RECURSION ) { $ type = 'recursion' ; // not a native php type! } } elseif ( \ is_array ( $ val ) ) { if ( \ in_array ( self :: ABSTRACTION , $ val , true ) ) { $ type = $ val [ 'type' ] ; $ typeMore = 'abstraction' ; } elseif ( AbstractArray :: isCallable ( $ val ) ) { $ type = 'callable' ; $ typeMore = 'raw' ; // needs abstracted } else { $ type = 'array' ; $ typeMore = 'raw' ; // needs abstracted } } elseif ( \ is_bool ( $ val ) ) { $ type = 'bool' ; $ typeMore = \ json_encode ( $ val ) ; } elseif ( \ is_float ( $ val ) ) { $ type = 'float' ; } elseif ( \ is_int ( $ val ) ) { $ type = 'int' ; } elseif ( \ is_null ( $ val ) ) { $ type = 'null' ; } elseif ( \ is_object ( $ val ) ) { $ type = 'object' ; $ typeMore = 'raw' ; // needs abstracted } elseif ( \ is_resource ( $ val ) || \ strpos ( \ print_r ( $ val , true ) , 'Resource' ) === 0 ) { // is_resource() returns false for a closed resource // (it's also not a string) $ type = 'resource' ; $ typeMore = 'raw' ; // needs abstracted } return $ type ; }
Returns value's type

@param mixed  $val      value
@param string $typeMore will be populated with additional type info ("numeric"/"binary")

@return string
Returns value s type