@VitaZheltyakov Мне всё равно, я не собираюсь навязывать вам своё мнение.
Раз вы не верите мне, почитайте хотя бы Макконнелла и Кнута.
Ну или посмотрите исходники популярных фреймворков.
Не просто так ведь ООП используют.
@VitaZheltyakov Чтобы собирать не только данные, сделайте класс Logger, который будет отвечать за сбор ошибок. В классе DB напишите use App\Logger и возрадуйтесь.
@VitaZheltyakov Код должен быть модульным, чтобы "модули" можно было независимо тестировать, чтобы их области видимости не пересекались и чтобы их можно было использовать повторно.
Для работы с БД обычно пишут синглтон, в котором хранится инстанс подключения, обрабатываются ошибки, ведется лог, выполняются предварительные запросы (типа SET NAMES) и т.д. Один класс для работы с БД лучше, чем 3 функции и 2 глобальных переменных.
@VitaZheltyakov Вам не нужно "объединять функции", сделайте, чтобы dbconnect() возвращала инстанс соединения или бросала исключение (ну или возвращала FALSE). Тогда необходимость переменной $database отпадет.
Чем плохи глобальные переменные и чем от них отличается синглтон - почитайте в википедии.
@VitaZheltyakov Конкретно в вашем случае - static переменной хватило бы.
А вообще, для работы с БД, обычно делают синглтон.
Я даже не могу представить себе пример приложения в котором потребуется использование глобальных переменных.
@senneco Ну если вы можете перенести приложение в свой аккаунт, то это еще лучше.
В практике любого фрилансера бывают такие случаи. Не опускайтесь до угроз, удаления и порчи программы. Ищите выгоду в любой ситуации.
И здесь, как мне кажется, добавление рекламы - это лучший вариант. И программа останется в маркете, и вы, возможно, хоть немного на ней заработаете.
@VitaZheltyakov Использование глобальных переменных говорит о том, что архитектура приложения - говно. А в данном конкретном случае они вообще не нужны.