我想知道哪个更好:
$lookup = array( "a" => 1, "b" => 2, "c" => 3 ); return $lookup[$key];
要么
if ( $key == "a" ) return 1 else if ( $key == "b" ) return 2 else if ( $key == "c" ) return 3
或者只是一个不错的开关......
switch($key){ case "a": return 1; case "b": return 2; case "c": return 3; }
我总是喜欢第一种方法,因为我可以将数据与代码分开; 在这种规模上,它看起来很愚蠢,但规模更大,有数千行查找条目; PHP需要多长时间才能构建一个数组,然后每个请求只检查1或2个条目.
我认为它必须经过测试和计时,但我会说数组越大越复杂,它就越慢.
PHP应该能够比PHP代码更快地处理查找,但是首先构建数组肯定会占用大量的时间.
对于具有可测量性能的任何事物(不仅仅是3个条目),查找是最快的方式.这就是哈希表的用途.