给定一个深度嵌套的数组:$array = array('nested' => array('so' => array('deep' => array())));
...which更快/‘更好’?
$array['nested']['so']['deep'][0] = 'a';
$array['nested']['so']['deep'][1] = 'b';
$array['nested']['so']['deep'][2] = 'c';或
$deep = &$array['nested']['so']['deep'];
$deep[0] = 'a';
$deep[1] = 'b';
$deep[2] = 'c';还是说它们是一样的?如果是这样,是不是更可取?为什么?
发布于 2011-12-16 00:51:48
通常,保持引用的更快更容易管理。但是,除非您多次访问它,否则可能不会有什么不同。散列很快。在我最近运行的测试中,我发现哈希甚至比我之前想象的还要快。但是,你通过引用绕过的级别越多,你就会看到越多的改进。
然而,对我来说最重要的事情是它更容易维护。在大多数情况下,性能提升可能可以忽略不计。我不会为了性能而费心这么做,但如果它能让你的代码更具可读性,那么我完全支持它。
发布于 2011-12-16 01:09:17
您可能遗漏了另一个变体:
$deep[0] = 'a';
$deep[1] = 'b';
$deep[2] = 'c';
$array['nested']['so']['deep'] = $deep;更快和更好在很大程度上取决于,这些术语相当宽泛。打字更快?你自己决定吧。执行起来更快?我不认为以如此一般的形式来了解它是值得的,这可以在具体的地方产生不同,但然后你也需要在具体的地方度量它来找出答案。
https://stackoverflow.com/questions/8523612
复制相似问题