protected function getOperator(string $str, bool $list = false)
	{
		static $_operators;

		if (empty($_operators))
		{
			$_les       = ($this->db->likeEscapeStr !== '') ? '\s+' . preg_quote(trim(sprintf($this->db->likeEscapeStr, $this->db->likeEscapeChar)), '/') : '';
			$_operators = [
				'\s*(?:<|>|!)?=\s*', // =, <=, >=, !=
				'\s*<>?\s*', // <, <>
				'\s*>\s*', // >
				'\s+IS NULL', // IS NULL
				'\s+IS NOT NULL', // IS NOT NULL
				'\s+EXISTS\s*\(.*\)', // EXISTS(sql)
				'\s+NOT EXISTS\s*\(.*\)', // NOT EXISTS(sql)
				'\s+BETWEEN\s+', // BETWEEN value AND value
				'\s+IN\s*\(.*\)', // IN(list)
				'\s+NOT IN\s*\(.*\)', // NOT IN (list)
				'\s+LIKE\s+\S.*(' . $_les . ')?', // LIKE 'expr'[ ESCAPE '%s']
				'\s+NOT LIKE\s+\S.*(' . $_les . ')?', // NOT LIKE 'expr'[ ESCAPE '%s']
			];
		}

		return preg_match_all('/' . implode('|', $_operators) . '/i', $str, $match) ? ($list ? $match[0] : $match[0][count($match[0]) - 1]) : false;
	}
protected function getOperator(string $str, bool $list = false)
	{
		static $_operators;

		if (empty($_operators))
		{
			$_les       = ($this->db->likeEscapeStr !== '') ? '\s+' . preg_quote(trim(sprintf($this->db->likeEscapeStr, $this->db->likeEscapeChar)), '/') : '';
			$_operators = [
				'\s*(?:<|>|!)?=\s*', // =, <=, >=, !=
				'\s*<>?\s*', // <, <>
				'\s*>\s*', // >
				'\s+IS NULL', // IS NULL
				'\s+IS NOT NULL', // IS NOT NULL
				'\s+EXISTS\s*\(.*\)', // EXISTS(sql)
				'\s+NOT EXISTS\s*\(.*\)', // NOT EXISTS(sql)
				'\s+BETWEEN\s+', // BETWEEN value AND value
				'\s+IN\s*\(.*\)', // IN(list)
				'\s+NOT IN\s*\(.*\)', // NOT IN (list)
				'\s+LIKE\s+\S.*(' . $_les . ')?', // LIKE 'expr'[ ESCAPE '%s']
				'\s+NOT LIKE\s+\S.*(' . $_les . ')?', // NOT LIKE 'expr'[ ESCAPE '%s']
			];
		}

		return preg_match_all('/' . implode('|', $_operators) . '/i', $str, $match) ? ($list ? $match[0] : $match[0][count($match[0]) - 1]) : false;
	}
protected function getOperator ( string $ str , bool $ list = false ) { static $ _operators ; if ( empty ( $ _operators ) ) { $ _les = ( $ this -> db -> likeEscapeStr !== '' ) ? '\s+' . preg_quote ( trim ( sprintf ( $ this -> db -> likeEscapeStr , $ this -> db -> likeEscapeChar ) ) , '/' ) : '' ; $ _operators = [ '\s*(?:<|>|!)?=\s*' , // =, <=, >=, != '\s*<>?\s*' , // <, <> '\s*>\s*' , // > '\s+IS NULL' , // IS NULL '\s+IS NOT NULL' , // IS NOT NULL '\s+EXISTS\s*\(.*\)' , // EXISTS(sql) '\s+NOT EXISTS\s*\(.*\)' , // NOT EXISTS(sql) '\s+BETWEEN\s+' , // BETWEEN value AND value '\s+IN\s*\(.*\)' , // IN(list) '\s+NOT IN\s*\(.*\)' , // NOT IN (list) '\s+LIKE\s+\S.*(' . $ _les . ')?' , // LIKE 'expr'[ ESCAPE '%s'] '\s+NOT LIKE\s+\S.*(' . $ _les . ')?' , // NOT LIKE 'expr'[ ESCAPE '%s'] ] ; } return preg_match_all ( '/' . implode ( '|' , $ _operators ) . '/i' , $ str , $ match ) ? ( $ list ? $ match [ 0 ] : $ match [ 0 ] [ count ( $ match [ 0 ] ) - 1 ] ) : false ; }
Returns the SQL string operator

@param string  $str
@param boolean $list

@return mixed
Returns the SQL string operator