private static function compare() { $i = 0; foreach (self::$routes as $route) { if ($route != '/') { $route = trim($route, '/'); } self::setRoute($route); if (self::$route == self::$uri) { if (is_object(self::$target[$i])) { call_user_func(self::$target[$i]); self::$errors = false; break; } self::setMethod(self::$target[$i]); self::setController(self::$controller, self::$method); self::$errors = false; break; } $arr = explode('?', self::$uri); $new_uri = $arr[0]; if (self::$route == $new_uri) { if (is_object(self::$target[$i])) { call_user_func(self::$target[$i]); self::$errors = false; break; } self::setMethod(self::$target[$i]); self::setController(self::$controller, self::$method); self::$errors = false; break; } self::$routeOrigin = self::$route; self::changeRouteToRegex(); if (preg_match_all('#' . self::$route . '#', self::$uri)) { $params = self::getParameters(); if (is_object(self::$target[$i])) { call_user_func_array(self::$target[$i], $params); self::$errors = false; break; } self::setMethod(self::$target[$i]); self::setController(self::$controller, self::$method, $params); self::$errors = false; break; } if (preg_match_all('#' . self::$route . '#', $new_uri)) { $params = self::getParameters(); if (is_object(self::$target[$i])) { call_user_func_array(self::$target[$i], $params); self::$errors = false; break; } self::setMethod(self::$target[$i]); self::setController(self::$controller, self::$method, $params); self::$errors = false; break; } $i++; } if (self::$errors) { throw new Exception('Route not found!'); } }