foreach($some_array as $item)
скопирует весь массив на лету, как только любой элемент будет изменен. Вам нужно работать со ссылкой, используя вместо этого оператор &
.
foreach($myArray as &$array):
foreach($array as $ul => &$v):
По умолчанию контейнер содержит ссылку на Ваши объекты (даже переходные).
Однако как @Bittercoder отмечает в том, Почему замок Windsor содержит на временные объекты?, можно изменить политику отслеживания выпуска. Это кажется тем выбором
LifecycledComponentsReleasePolicy
:
var policy = container.Kernel.ReleasePolicy;
container.Kernel.ReleasePolicy = LifecycledComponentsReleasePolicy;
Но так как вопрос задали, это, кажется, стало политикой по умолчанию.
Одна вещь отметить состоит в том, что это, кажется, было зафиксировано в замке Trunk. В r5475 изменился Hammett, значение по умолчанию опубликовывают стратегию в MicroKernel к LifecycledComponentsReleasePolicy.