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

Главная  >>  Backend  >>  Fatal error: Cannot re-assign auto-global variable. Как решить?

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

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

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

Вызов:

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

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