Aleksandr Yurchenko, функция preg_replace_callback принимает callback, то есть то что указали в аргументе callback должно вернуть callback, то есть return function...
Если не получится, до компа доберусь гляну
QNA-1976, ну по нормальному там всегда должна быть коллекция, хотя бы пустая, обычно все равно делают запрос на count перед fetch
Так же есть fetchObject там stdClass по умолчанию, и можно добиться рефакторинга метода с меньшим количеством аргументов