[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: foreach | нужен ли unset $value после?
Страницы: 1, 2, 3
Barh
Здравствуйте, форумчане!

После выполнения цикла, переменная $value остаётся в памяти:

$test1 = array(1,2,3,4,5);
foreach ($test1 as $value)
{ КАКИЕ-ТО ОПЕРАЦИИ }

var_dump($value);


Нужно ли очищать переменную после цикла?:
unset($value);


И вообще имеет ли смысл всегда следить за переменными и очищать их, если они дальше по коду использоваться не будут?
T1grOK
Оставьте это дело zend engine и не захламляйте код лишними инструкциями.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
GET
Barh

Нет, они слишком мало места занимают в памяти, тем более сейчас с памятью особых проблем нет, на современном железе. Удалять может быть стоит какие-нибудь очень тяжелые массивы, а так думаю нет.

Я например обычно всегда использую $val для foreach, просто взял это за правило и поэтому когда их несколько встречается в скрипте они просто друг друга затерают.

А для обычных проходных переменных использую что-то типа $temp, только переборщать не стоит, все таки переменная своим названием должна обычно нести также и смысловую нагрузку.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Barh
T1grOK, спасибо, почитаю.

ABC, спасибо за ответы на вопросы. Я примерно так и делаю сейчас)
bestxp
Цитата (ABC @ 11.01.2014 - 13:28)
Barh

Нет, они слишком мало места занимают в памяти, тем более сейчас с памятью особых проблем нет, на современном железе. Удалять может быть стоит какие-нибудь очень тяжелые массивы, а так думаю нет.

Я например обычно всегда использую $val для foreach, просто взял это за правило и поэтому когда их несколько встречается в скрипте они просто друг друга затерают.

А для обычных проходных переменных использую что-то типа $temp, только переборщать не стоит, все таки переменная своим названием должна обычно нести также и смысловую нагрузку.

http://habrahabr.ru/post/136835/ а ты смелый смотрю)))
GET
Цитата
http://habrahabr.ru/post/136835/ а ты смелый смотрю)))


Цитата
Причина кроется в амперсанде.


Чего бы мне не быть смелым. smile.gif

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
bestxp
но всё же, иногда лучше убирать за собой, наверно привычка после не скриптового программирования, убирать иногда за собой)

да и как то сталкивался часто wink.gif порой лучше сделать чем потом за тебя кто-то поставит ссылку, для удобства и ... лови приветы
Barh
bestxp, согласен, что если не чистить за собой, то впоследствии, если программистов несколько, то можно наткнуться на "необъяснимые баги". Совет учту)
GET
bestxp
Пойду создам опрос. smile.gif



_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Barh
ABC, не забудьте скинуть ссылку на него или результаты)
twin
Убирать за собой не всегда целесообразно. Дело в том, что функции "уборки" тоже влекут накладные расходы. И часто оно неоправдано. Более того, неоправдано оно бывает в 99% случаев. А иногда полезно.

Это как в ресторане. Вы заплатили за обслуживание и тут же сами понесли грязную посуду на мойку. smile.gif

Слава Богу в PHP есть сборщик мусора, который сам очищает память после отработки скрипта. Другое дело, если скрипт долгий и переменные содержат большой объем данных. Тут не мудрено и на лимит нарваться. Тогда действительно стоит прибраться в процессе.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
bestxp
мусор это понятно для обычного это да, но тут я натыкался на "рефакторинг" поэтому поставил для себя точку чистить после такого, если ты конечно один работаешь сейчас, не значит что потом у тебя не появится еще кто-то wink.gif

главное рационально
GET
http://phpforum.ru/index.php?act=ST&f=22&t=78816

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
AllesKlar
bestxp
Эпоха ассемблера, 640kb памяти, оптимизации кода, планирования приложений ушла в небытие.
Появился C#, php для чайников и разработчики из клана Stack Overflow.

Хотя.. я даже рад этому. Пока есть люди, которые думают, что они программисты, и в руководствах к созданным ими чудовищ пишут "Оптимизировано для ...." на рынке труда я буду востребован в числе первых.

ABC
Это не в твой камень огород, чистить после foreach ничего не нужно, конечно, на это есть garbage collector, но фраза
Цитата
тем более сейчас с памятью особых проблем нет
вызывает как минимум недоумение.

_____________
[продано копирайтерам]
GET
Цитата
вызывает как минимум недоумение.


Ну да, согласен, немного глупо звучит. За памятью нужно следить всегда и просто нужно все стараться делать логически правильно.

Я имел ввиду такие моменты, что когда-то раньше, я читал вот, очень хорошим тоном, например считалось очищать отработанную выборку после запроса в БД, сейчас-же как правило нет. В те моменты, когда на сервере стояло 32 Мб оперативки можно было бы очищать переменные, чтоб немного освобождать ее, конечно соизмеряя с расходами на саму UNSET, сейчас стоят планки по несколько гиг и никто об этом даже не заморачивается. Заморачиваются архитектурой тяжелых запросов в БД, кешированием и т.д., но не удалением простейших переменных.

Вот что я хотел сказать, когда написал:
Цитата
тем более сейчас с памятью особых проблем нет


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.