lexdevel, что бы переменная стала глобальная (была видна в любой области видимости) её нужно записать в суперглобальный массив $GLOBALS или же использовать ключевое слово global как я делал в своём примере.
Если переменна находится не в функции, а просто в php файле - это не значит что она в глобальной области видимости. Она в области видимости этого файла, а если уже подключить этот файл с помощью include (или каким другим способом) она будет находится в области видимости файла в котором было произведено подключение, но никак не в области видимости функции описанной в этом же файле.
DeepVarvar, ну там у меня хотябы понятно для чего классы и методы писались, а тут функция ради функции. lexdevel, почему не логично? У каждой функции, класса, метода класса своя область видимости. Область видимости не ограничивается файлом.
Ну а вообще я не вижу необходимости в создании этой функции. Если уж взялся писать всё в структурном стили то и пиши так. У тебя же получается что ты пытаешься создать функцию ради функции.
lexdevel, ничего у тебя не будет видно.
Переменные $mysql_host, $mysql_user, $mysql_pass и $mysql_base не видны внутри функции registerUser() потому что у них разные области видимости.
Как заставить их быть видными внутри функции: использовать ключевое слово global
Выглядеть будет так:
Вот теперь всё будет работать. Но использовать ключевое слово global крайне не рекомендуется, это деает код жёстко привязанным и не удобным. В дальнейшем такой код будет сложно модифицировать.
Hapson, ну если уж с регулярками всё плохо то тогда не стоит писать свой роутер. Там регулярки будут везде и всюду и если ты не научишься с ними работать ничего толкового сделать не выйдет.