给出一个深层嵌套的数组:$array = array('nested' => array('so' => array('deep' => array())));
......哪个更快/'更好'?
$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';
或者它们是一样的吗?如果是这样,一个更好,为什么?
答案 0 :(得分:3)
保持参考更快,更容易管理。但是,除非您多次访问它,否则它可能没有区别。哈希很快。在我最近跑的测试中,我发现散列比我之前想象的要快。通过引用绕过的级别越多,您将看到的改进越多。
然而,对我来说最重要的是它更容易维护。在大多数情况下,性能提升可能微不足道。我不打算为性能做这件事,但如果它让你的代码更具可读性,那么我就是为了它。
答案 1 :(得分:2)
您可能错过了另一种变体:
$deep[0] = 'a';
$deep[1] = 'b';
$deep[2] = 'c';
$array['nested']['so']['deep'] = $deep;
更快更好取决于很多,这些术语相当广泛。输入速度更快?自己决定。执行速度更快?我不认为以这样的一般形式知道它是值得的,这可以在具体的地方产生影响,但是你需要在具体的地方量化它以便找出它。