0

我找到了两种方法,我正在寻找这里的哪种风格会减少开销和提高效率。有谁知道什么是最好的?这个项目可能有很多链接并得到很大的数组。

1

foreach($this->routes as $pattern => $action) {

    if($pattern === $uri) {
        return $action;
    }

    if(preg_match('#^' . $pattern . '$#', $uri, $matched)) {
        return $action;
    }

}

2

if(array_key_exists($uri, $routes)) {
    return $routes[$uri];
}

foreach($this->routes as $pattern => $action) {
    if(preg_match('#^' . $pattern . '$#', $uri, $matched)) {
        return $action;
    }
}
4

1 回答 1

0

array_key_exists应该比循环快得多,因为它只是哈希查找而不是顺序搜索。但是,这种差异可能不会很明显,因为每当查找失败时,您都会进入循环寻找正则表达式匹配。

于 2013-11-04T18:05:21.467 回答