marco
Новичок
модификация массива в ф-ции переданного по ссылке
привет.
в общем, я разумеется курил мат часть, и знаю, что если мы передаём в ф-цию массив (или объёкт), то он предаётся по ссылке, однако, в случае изменения переданного массива, будет создана копия этого массива, и все операции будут происходить уже над копией.
Собственно, данный топик сводится к вопросу - как передать в ф-цию некий массив, что бы изменения происходили над оригиналом, а не копией ?
Теперь по проекту: это доставшийся в наследство скриптэ, выполненный в процедурном стиле, который гоняет между ф-циями массивы данных, каждый объёмом от 4МБ! и возвращает слегка изменённые.
Памяти эта системка потребляет просто невероятное количество, как для скриптов на ПХП, и выполняется около 5минут... и большей частью из-за этих копирований массивов. В общем, такой себе процедурный способ реализации Контекста, Тулкита и подобных)
Чего нельзя использовать: к сожалению, global здесь не рулят, так же не вариант переписывать всё с нуля... нужно просто как-то передавать в ф-цию массив, и работать в ней над оригиналом, собственно, как это можно сделать ?
Спасибо.
привет.
в общем, я разумеется курил мат часть, и знаю, что если мы передаём в ф-цию массив (или объёкт), то он предаётся по ссылке, однако, в случае изменения переданного массива, будет создана копия этого массива, и все операции будут происходить уже над копией.
Собственно, данный топик сводится к вопросу - как передать в ф-цию некий массив, что бы изменения происходили над оригиналом, а не копией ?
Теперь по проекту: это доставшийся в наследство скриптэ, выполненный в процедурном стиле, который гоняет между ф-циями массивы данных, каждый объёмом от 4МБ! и возвращает слегка изменённые.
Памяти эта системка потребляет просто невероятное количество, как для скриптов на ПХП, и выполняется около 5минут... и большей частью из-за этих копирований массивов. В общем, такой себе процедурный способ реализации Контекста, Тулкита и подобных)
Чего нельзя использовать: к сожалению, global здесь не рулят, так же не вариант переписывать всё с нуля... нужно просто как-то передавать в ф-цию массив, и работать в ней над оригиналом, собственно, как это можно сделать ?
Спасибо.