Задать вопрос
@adrenalinruslan

Стоит ли удалять переменные?

Допустим у меня есть такой код:

foreach($array_game as $value) {
			$params = [
				'where' => [
					'g_id' => $value['g_id'],
				],
				'table' => 'games',
			];
			if(empty($this->getInfo_mysql($params))) {
				unset($params);
				$params = [
					'g_id'			=> $value['g_id'],
					'g_time'		=> $value['g_time'],
					'g_result'		=> $value['g_result'],	
				];
				$this->insertGame_mysql($params);
				unset($params);
			}
		}


Оставить ли мне unset ? Или это бесмысленно
  • Вопрос задан
  • 2475 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
t-alexashka
@t-alexashka
Сразу пишу legacy код
Смысла нет, т.к. переменная переопределяется каждую итерацию. Даже наверно будет хуже если вы ее будете удалять, т.к. время и ресурсы (хотя я не знаю какие ресурсы выделяются под unset) на лишнюю бесполезную операцию.
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
выполнять unset имеет смысл только в том случае, если переменная содержит большой объем данных и после ее использования есть еще большой объем кода. Тогда в целом это может быть оправдано, в частности определение новых переменных будет происходить из освобожденной области памяти, а не занимать новые блоки, в противном случае это лишний оверхед на создание / удаление переменной.
Ответ написан
Комментировать
@kuftachev
unset($params);
$params = [.....];

Я не знаю, будет ли какая-то оптимизация, но если бы выполнить все как есть, то unset говорит, что нужно удалить переменную, а значение удалиться при сборке мусора, потом создаётся новая переменная с таким же именем.

Если убрать unset, то не будет создаваться новая переменная, просто той же присвоится новое значение, а старое станет недоступно и соберётся ч сборщиком мусора.

Это все в том случае, если вообще будет сборка мусора до конца скрипта.

Так что, unset тут точно не место.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽