Так инклуд он не просто подключает код?
Если грубо говорить - он на уровне твоей функции весь код инклудит. Т.е. скоуп require огриничевается областью видимости твоей функции. Вообще в конечном итоге ты должен в буфер писать аутпут, а не просто рекваирить, но на данном этапе пофигу.