SqlParser\Token::extract PHP Метод

extract() публичный Метод

If no processing can be done it will return the initial string.
public extract ( ) : mixed
Результат mixed
    public function extract()
    {
        switch ($this->type) {
            case Token::TYPE_KEYWORD:
                if (!($this->flags & Token::FLAG_KEYWORD_RESERVED)) {
                    // Unreserved keywords should stay the way they are because they
                    // might represent field names.
                    return $this->token;
                }
                return strtoupper($this->token);
            case Token::TYPE_WHITESPACE:
                return ' ';
            case Token::TYPE_BOOL:
                return strtoupper($this->token) === 'TRUE';
            case Token::TYPE_NUMBER:
                $ret = str_replace('--', '', $this->token);
                // e.g. ---42 === -42
                if ($this->flags & Token::FLAG_NUMBER_HEX) {
                    if ($this->flags & Token::FLAG_NUMBER_NEGATIVE) {
                        $ret = str_replace('-', '', $this->token);
                        sscanf($ret, '%x', $ret);
                        $ret = -$ret;
                    } else {
                        sscanf($ret, '%x', $ret);
                    }
                } elseif ($this->flags & Token::FLAG_NUMBER_APPROXIMATE || $this->flags & Token::FLAG_NUMBER_FLOAT) {
                    sscanf($ret, '%f', $ret);
                } else {
                    sscanf($ret, '%d', $ret);
                }
                return $ret;
            case Token::TYPE_STRING:
                $quote = $this->token[0];
                $str = str_replace($quote . $quote, $quote, $this->token);
                return mb_substr($str, 1, -1, 'UTF-8');
                // trims quotes
            // trims quotes
            case Token::TYPE_SYMBOL:
                $str = $this->token;
                if (isset($str[0]) && $str[0] === '@') {
                    // `mb_strlen($str)` must be used instead of `null` because
                    // in PHP 5.3- the `null` parameter isn't handled correctly.
                    $str = mb_substr($str, !empty($str[1]) && $str[1] === '@' ? 2 : 1, mb_strlen($str), 'UTF-8');
                }
                if (isset($str[0]) && ($str[0] === '`' || $str[0] === '"' || $str[0] === '\'')) {
                    $quote = $str[0];
                    $str = str_replace($quote . $quote, $quote, $str);
                    $str = mb_substr($str, 1, -1, 'UTF-8');
                }
                return $str;
        }
        return $this->token;
    }