Как сбросить все переменные. Должен ли я использовать unset ($ var1, $ var2, $ var3, ...) или существует какой-либо другой простой метод?
Да, этонормальный способ сбрасывать несколько переменных.Вы могли бы перебрать переменные в области видимости и сбросить их, но это было бы излишним.
Отмена установки переменных в конце функций - это хорошая практика?. Любая разница!
Хотя переменные будут собираться мусором в конце области действия (функция, класс, сценарий), это может быть полезно сделать в однофайловом сценарии (процедурном) - особенно в сценариях, где другие сценарии произвольно включаются в область действия.
Как говорится, при чистой организации это не нужно;однако, это тоже не обязательно плохо.
Отмена установки переменной приведет к сокращению времени выполнения программы или нет?
В большинстве случаев разницы будет мало или нет;однако, как я упоминал ранее, это не может повредить и потенциально может принести некоторую ясность в отношении того, что находится / не находится в сфере применения.Фактически, я обычно делаю это сразу после for / foreach, поскольку for / foreach не имеет области видимости блока, поэтому переменные, определенные внутри этих блоков, доступны после цикла.
Пример:
foreach ($doctors as $key => $val) {
// do something
}
unset($key, $val);
Кстати, если вы хотите знать, как на самом деле сделать это навалом (да, это возможно, но это не красиво):
<?php
$_SCRIPT_one = 1;
$_SCRIPT_two = 2;
$_SCRIPT_three = 3;
// list of all variables defined
$all = array_keys(get_defined_vars());
// list only the local variables we are interested in
$local = array_filter($all, function($name) { return preg_match('/^_SCRIPT_/i', $name); });
// dump currently scoped local variables
var_dump($local);
// unset local variables
foreach ($local as $var) { unset($$var); }
// list of all variables defined
$all = array_keys(get_defined_vars());
// list only the local variables we are interested in
$local = array_filter($all, function($name) { return preg_match('/^_SCRIPT_/i', $name); });
// dump currently scoped local variables
var_dump($local);