К сожалению, я не могу ответить на другие вопросы, у меня недостаточно репутации, но мне нужно указать на то, что было ОЧЕНЬ важно для меня, и я думаю, что это поможет и другим людям.
Сброс переменной является хорошим способом, если вам не нужна ссылка на исходный массив!
Чтобы было понятно, что я имею в виду: если у вас есть функция, которая использует ссылку на массив, например, функция сортировки, например
function special_sort_my_array(&$array)
{
$temporary_list = create_assoziative_special_list_out_of_array($array);
sort_my_list($temporary_list);
unset($array);
foreach($temporary_list as $k => $v)
{
$array[$k] = $v;
}
}
это не работает! Будьте осторожны, unset
удаляет ссылку, чтобы переменная $array
создавалась снова и корректно заполнялась, но значения недоступны извне функции.
Так что, если у вас есть ссылки, вы должны использовать $array = array()
вместо unset
, даже если это менее чисто и понятно.
unset($array)
?