我正在审查同事的代码,并注意到我认为效率低下且浪费的内容。
基本上他有这样的功能:
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不必要地复制?或者我是在迂腐。
答案 0 :(得分:2)
只需将数组传递给函数,就不会在内存中复制任何内容。任何地方都没有性能损失。重写函数签名以使其更明确可能仍然是一个好主意,但这是有争议的,没有更多的上下文就无法判断。