|
PHP - как отменить ссылку?
|
|||
---|---|---|---|
#18+
У меня есть два набора данных ($list и $data) и мне нужно их однонаправленно синхронизировать между собой. Для этого я построчно обрабатываю второй набор $data, сопоставляя его с первым, а затем дополнительно обрабатываю пропущенные данные из первого набора $list. Первичная обработка выглядит примерно так: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Но по окончанию первого цикла в $row содержится ссылка на элемент в $data. И когда я делаю $row=[], то я при этом также изменяю этот элемент в $data. Если во втором цикле вместо $row использовать новую переменную (например $new), то тогда все работает нормально. Ну либо можно просто после первого цикла выполнить unset($row), это тоже освободит ссылку. А можно ли заставить PHP освобождать подобные ссылки автоматически, по завершению цикла? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 00:52 |
|
PHP - как отменить ссылку?
|
|||
---|---|---|---|
#18+
Автоматически - вряд ли. По крайней мере, в мануале явно говорится об использовании unset() http://php.net/manual/ru/control-structures.foreach.php Внимание Ссылка $value на последний элемент массива останется после окончания цикла foreach. Рекомендуется уничтожать ее с помощью unset(). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 01:38 |
|
|
start [/forum/topic.php?fid=23&msg=39754764&tid=1460049]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 147ms |
0 / 0 |