给定一个深度嵌套的数组:
$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';
或者它们是一样的吗?如果是这样,哪一个更好,为什么?
保留参考通常更快、更容易管理。但是,除非您多次访问它,否则它可能不会产生任何影响。散列很快。在我最近运行的测试中,我发现散列甚至比我之前想象的还要快。不过,您通过参考绕过的级别越多,您看到的改进就越多。
不过,对我来说最重要的是它更容易维护。在大多数情况下,性能提升可能可以忽略不计。我不会为了性能而费心这样做,但如果它使你的代码更具可读性,那么我完全支持它。
$deep[0] = 'a';
$deep[1] = 'b';
$deep[2] = 'c';
$array['nested']['so']['deep'] = $deep;
更快更好取决于很多,这些术语相当广泛。打字速度更快?你自己决定吧。执行速度更快?我认为以这样的一般形式来了解并不值得,这可能会在具体的地方产生影响,但是你也需要具体地衡量它才能找出答案。