В PHP можно передавать массив в функцию по ссылке. Но что это значит? Лучше посмотреть на примере.
Здесь внутри функции происходит создание копии переданного массива. Разумеется, на это расходуется память и системные ресурсы сервера. Следовательно, при больших размерах передаваемого в функцию массива это может быть "тонким местом" производительности вашего скрипта.
Если функция предназначена для модификации данных, то разумно передавать в нее массив по ссылке. Это сэкономит ресурсы сервера на создание копии массива:
//Функция переводит фамилию в верхний регистр
function uppercase_surname ($person) {
$person['surname'] = strtoupper($person['surname']);
}
$singer = array(
'name' => 'Hilary',
'surname' => 'Duff'
);
uppercase_surname($singer);
echo $singer['surname']; //"Duff" (т.е. регистр не изменился)
Здесь внутри функции происходит создание копии переданного массива. Разумеется, на это расходуется память и системные ресурсы сервера. Следовательно, при больших размерах передаваемого в функцию массива это может быть "тонким местом" производительности вашего скрипта.
Если функция предназначена для модификации данных, то разумно передавать в нее массив по ссылке. Это сэкономит ресурсы сервера на создание копии массива:
//Знак '&' просит php не копировать передаваемый массив,
//а передать в функцию ссылку на него
function uppercase_surname (&$person) {
$person['surname'] = strtoupper($person['surname']);
}
$singer = array(
'name' => 'Hilary',
'surname' => 'Duff'
);
uppercase_surname($singer);
echo $singer['surname']; //"DUFF" (регистр изменился)
Комментариев нет:
Отправить комментарий