Игнорирование вашего кода на мгновение и просмотр только вашего описания того, как должна работать эта схема ... Да, соединение с базой данных будет устанавливаться только один раз для каждого сценария PHP и не будет дублироваться для каждого экземпляра.
Является ли это хорошей идеей или нет, зависит от ваших подклассов. Каждый класс должен иметь одну ответственность. Пока единственная ответственность подклассов - взаимодействие с БД, вы, вероятно, в порядке. (Посмотрите на Шаблон репозитория для объяснения того, как это обычно делается.) Если ваш класс User расширяет базу данных, чтобы он мог хранить себя, вы перешли черту и пишете классы, которые будут иметь слишком много зависимостей и обязанностей.
Что касается вашего кода ... Почти каждая строка вашего кода неверна. Вы не можете инициализировать переменные класса с результатами функции. Ваш SQL неверен. Линия $connection ? "connected" : "not connected";
ничего не делает. Почти ничего из этого не должно быть сделано в конструкторе. И т.д.