Вам нужно прочитать более внимательно переменная область видимости в php
$var
, объявленная в a()
, видна только в области видимости a()'s
.То же самое относится к $arr
в b()
.
Этот фрагмент кода $var = a();
должен читаться следующим образом:
создать глобальную (для области документа) переменную $var
и присвойте ему значение, возвращаемое a()
.перейдя к a()
, мы имеем: создаем локальную (видимую только в области видимости функции) переменную $var
и присваиваем 'variable' в качестве значения, затем возвращаем значение $var
.
В конце вы закончилис двумя переменными с одинаковыми именами, но с разными областями видимости, они не перекрывают / перезаписывают друг друга из-за этого.
Также верно и обратное, глобальные переменные не видны в областях действия функций.Вам нужно использовать глобальный оператор, чтобы сделать их (импортировать) видимыми в области функций.
Надеюсь, что это поможет вам.:)