public static function phpize($value)
    {
        $value          = (string) $value;
        $lowercaseValue = \mb_strtolower($value);

        switch (true) {
            case 'null' === $lowercaseValue:
                return;
            case \ctype_digit($value):
                return self::transformToNumber($value, 0);
            case isset($value[1]) && '-' === $value[0] && \ctype_digit(\mb_substr($value, 1)):
                return self::transformToNumber($value, 1);
            case 'true' === $lowercaseValue:
                return true;
            case 'false' === $lowercaseValue:
                return false;
            case isset($value[1]) && '0b' === $value[0] . $value[1]:
                return \bindec($value);
            case \is_numeric($value):
                return '0x' === $value[0] . $value[1] ? \hexdec($value) : (float) $value;
            case \preg_match('/^0x[0-9a-f]++$/i', $value):
                return \hexdec($value);
            case \preg_match('/^(-|\+)?\d+(\.\d+)?$/', $value):
                return (float) $value;

            default:
                return $value;
        }
    }