我找到了两种方法,我正在寻找什么样的风格,以减少开销和提高效率。有谁知道什么是最好的?这个项目可能有很多链接并获得大数组。
foreach($this->routes as $pattern => $action) {
if($pattern === $uri) {
return $action;
}
if(preg_match('#^' . $pattern . '$#', $uri, $matched)) {
return $action;
}
}
if(array_key_exists($uri, $routes)) {
return $routes[$uri];
}
foreach($this->routes as $pattern => $action) {
if(preg_match('#^' . $pattern . '$#', $uri, $matched)) {
return $action;
}
}
答案 0 :(得分:0)
array_key_exists
应该比循环快得多,因为它只是一个哈希查找而不是顺序搜索。但是,差异可能不会引人注意,因为每当查找失败时,您将进入循环寻找正则表达式匹配。