Я предлагаю использовать __ autoload () или spl_autoload_register () для загрузки ваших классов вместо жесткого кодирования include ().
Что касается вашей проблемы, класс "About" никогда не создает экземпляр члена БД. Его родитель, CPU, также не имеет члена БД. Другими словами, вы, вероятно, хотите, чтобы БД была членом ЦП или О. Трудно сказать, не зная, что ты пытаешься сделать.
Даже если вы сделаете DB членом любого из них, вам все равно придется добавить его в экземпляр класса About, который создается в load_controller ().
Другими словами, кажется, что вы на самом деле просто делаете это неправильно. Эта БД не имеет никакого отношения к О. Трудно оказать вам дополнительную помощь, не зная точно, что вы пытаетесь сделать.
Об использовании Синглтона, который не имеет ничего общего с чем-либо. Синглтон - это просто класс, который вам нужен только один. Они часто злоупотребляются и неправильно. Используйте с осторожностью!