PHP速度/内存 - 传递数组与传递对象

时间:2014-01-06 07:00:22

标签: php optimization parameters

我正在审查同事的代码,并注意到我认为效率低下且浪费的内容。

基本上他有这样的功能:

function blah($record) {
    echo "do something " . $record['first_name'] . $record['last_name'];
}

他将整个数组传递给此函数,而没有大约30个奇数记录。

在函数内部,他只使用$record['first_name']$record['last_name'],因此所有其他属性都毫无意义。

我的论点是。像这样重写它不是更好:

function blah($first_name, $last_name) {
    echo "Do something " . $first_name . $last_name;
}

然后只需使用参数而不是在函数期间访问数组。

这是准确的观察吗?在这种情况下,内存是否会被php不必要地复制?或者我是在迂腐。

1 个答案:

答案 0 :(得分:2)

只需将数组传递给函数,就不会在内存中复制任何内容。任何地方都没有性能损失。重写函数签名以使其更明确可能仍然是一个好主意,但这是有争议的,没有更多的上下文就无法判断。