В 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" (регистр изменился)
Комментариев нет:
Отправить комментарий