модификация массива в ф-ции переданного по ссылке

marco

Новичок
модификация массива в ф-ции переданного по ссылке

привет.
в общем, я разумеется курил мат часть, и знаю, что если мы передаём в ф-цию массив (или объёкт), то он предаётся по ссылке, однако, в случае изменения переданного массива, будет создана копия этого массива, и все операции будут происходить уже над копией.
Собственно, данный топик сводится к вопросу - как передать в ф-цию некий массив, что бы изменения происходили над оригиналом, а не копией ?

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

Чего нельзя использовать: к сожалению, global здесь не рулят, так же не вариант переписывать всё с нуля... нужно просто как-то передавать в ф-цию массив, и работать в ней над оригиналом, собственно, как это можно сделать ?

Спасибо.
 

LONGMAN

Dark Side of the Moon..
Re: модификация массива в ф-ции переданного по ссылке

Автор оригинала: marco
привет.
в общем, я разумеется курил мат часть, и знаю, что если мы передаём в ф-цию массив (или объёкт), то он предаётся по ссылке,
Где ты о массывах читал? Я знал только о объектах
 

флоппик

promotor fidei
Команда форума
Партнер клуба
и знаю, что если мы передаём в ф-цию массив (или объёкт), то он предаётся по ссылке, однако, в случае изменения переданного массива, будет создана копия этого массива
Ты не прав.
 

AmdY

Пью пиво
Команда форума
triumvirat
ясное дело, что помять не при чём, иначе бы уткнулся в memory_limit. я бы ещё xdebug с профайлингом посоветовал, но раз не знает о передаче по ссылке, то пока рано.
 

HraKK

Мудак
Команда форума
Крайне не советую ставить ссылки на внутренние данные массива.
 

fixxxer

К.О.
Партнер клуба
Не, ну некоторые вещи, типа создания рекурсивной структуры без использования рекурсии, делаются красиво таким образом.

Но надо ОЧЕНЬ аккуратно это делать, дабы не заиметь циклических ссылок (а служебному "указателю" - как стал не нужен - сразу unset от греха подальше).
 
Сверху