It seems like $class can also be of type string[]; however, parameter $class_name of class_exists() does only seem to accept string, maybe add an additional type check?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the ignore-type annotation
20
if (! class_exists(/** @scrutinizer ignore-type */ $class)) {
The expression return $class could return the type null|string[] which is incompatible with the type-hinted return string. Consider adding an additional type-check to rule them out.