В PHP я использую массив для создания содержимого HTML-страниц моего сайта. Я также использую Symfony 2, но не веточку. Это пример, который создает простую полууникальную страницу:
$strMAINs = [];
$r = rand( 1, 99999 ); // $r needs to be generated on the server for some
// reason, so can't generated by the client and then
// sent back when the form that contains this code is
// submitted. Why isn't important.
$strMAINs[] = '<table>';
$strMAINs[] = '<tr>';
$strMAINs[] = '<td>';
$strMAINs[] = 'Input a number from 1 to 99,999:';
$strMAINs[] = '</td>';
$strMAINs[] = '<td>';
// Create a random default value ...
$strMAINs[] = '<input id="TextInput" value="' . $r . '" />';
$strMAINs[] = '</td>';
$strMAINs[] = '</tr>';
$strMAINs[] = '</table>';
$strMAIN = implode( PHP_EOL, $strMAINs );
// Note, in my web-app the strings can be a lot longer.
// Send the content $strMAIN to the browser using the appropriate Symfony 2 function.
На данный момент я могу позволить Symfony / PHP освободить / освободить память, используемую строкой $ strMAIN и строками массива $ strMAINs, когдародительская функция, которая владеет этими переменными, завершает свою работу и позволяет сборщику мусора самостоятельно обрабатывать память или использовать команду unset в массиве $ strMAINs, но не в $ strMAIN, поскольку ей нужно свое значение для функции Symfony, которая отправляет страницу вbrowser.
Однако из того, что я читал о команде unset, кажется, что переменные в команде unset освобождают свою память, но она не обязательно доступна другому пользователю моего сайта, пока сборщик мусораприступает к выполнению своей работы.
Я также обеспокоен утечками памяти.
Просматривая команду unset PHP, я увидел, что установка массива в значение NULL может привести к тому, что память будетвыпущен и доступен быстрее.