Первая проблема заключается в том, что вы передаете аргумент по значению, поэтому то, что вы делаете с ним в remove_var()
, не влияет на исходную переменную вне функции. Вместо этого для передачи по ссылке измените объявление функции следующим образом:
function remove_var(&$mixedVar)
Тем не менее, есть и странность, использующая unset()
таким образом - он не работает для меня, даже когда переменная передается по ссылке. Тем не менее, работает , если вместо переменной установить null
, что в основном эквивалентно. Когда переменная в функции unset()
, она удаляет эту ссылку, но оставляет исходную ссылку и не меняет значение. Когда вы изменяете значение на null
, ссылки остаются одни, но значение, очевидно, изменяется на null
. Поскольку получение значения неустановленной переменной в любом случае дает null
, это должно быть фактически эквивалентно. Так что попробуйте:
function remove_var(&$mixedVar)
{
$mixedVar = null;
}