@kot-samolet

Вы делаете unset() в своём коде?

Кто-то делает для минимизации потребления памяти, кто-то считает это плохой идеей и бесполезной если скрипт работает долю секунды. Но если рассмотреть ситуацию с импортом большого файла в БД, где мы сначала его считали в переменную $a потом перевели в нужный вид в переменную $b и пишем в базу и на этот период переменную $a уже можно было бы очистить...
Заморачиваетесь ли вы с такими вещами, позволяет ли это реально экономить что-то?
  • Вопрос задан
  • 306 просмотров
Решения вопроса 4
Exploding
@Exploding
wtf?
Я обычно использую ту же переменную, а не $b.
Типа такого.
$a = trim($a);
$a = explode(' ', $a);

А unset() использую только если из массива что-то снести надо...
Ответ написан
В большинстве скриптов в этом нет необходимости.
Если вы в коде получаете, например, один массив на много N (зависит от сервера) мегабайт, а потом хотите получить другой массив такого же объёма, может иметь смысл что-то типа такого:
for () {
  $arr2[] = new_value($arr1[i]);
  unset($arr1[i]);
}

В этом случае вам памяти понадобится не 2*N, а где-то ближе к N.
Но на практике необходимость такого - большая редкость.
Ответ написан
Комментировать
pezdatskiy
@pezdatskiy
Предприниматель, по выходным- программист
Я использую unset в двух случаях- обработка больших данных с перегоном из массива в массив, из объекта в обьект и так далее.
Либо если отсутствие ансета при каких либо условиях может повлиять на дальнейшее исполнение кода, и циклов в частности. Очень часто баги возникают именно из за его отсутствия.
К слову, Не забывайте, что в php на самом деле используются не переменные, а указатели на ту или иную сущность. И по предыдущему ответу- я бы после цикла заансетил весь массив
Ответ написан
Комментировать
@Akellacom
CTO
Разве что выпилить что-то из массива.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы