Fatal error: Cannot re-assign auto-global variable. Как решить?


Данная ошибка получается очень редко, т.к. причина её появления, в принципе, очевидна после первого знакомства с ней. Итак, разберем, как решить ошибку Fatal error: Cannot re-assign auto-global variable.

С текста ошибки понятно, что компилятор не может переопределить глобальную переменную.
Данная ошибка возникает в следующей ситуации:

public static function saveAny($token, $_FILES)....

Как видите в объявленных параметрах указана глобальная переменная, которая, как раз и вызывает ошибку. В такой ситуации есть два пути:
1) Просто уберите из объявления глобальную переменную, при этом все, обращения к ней внутри метода не должны вызывать проблем.
2) Измените объявление функции, а также её вызов.
Объявление:

public static function saveAny($token, $files)....

Вызов:

saveAny($someOutSideToken, $_FILES);

Как видите мы передаем в метод все тот же глобальный массив, но теперь он внутри метода уже должен быть использован с новым именем.

Второй метод более предпочтительный, так как позволяет использовать различные абстракции при обращении к методу, не изменяя его самого.

,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *