Ваш код работает, но, вероятно, недоразумение.
Ваши функции зарегистрированы:
print_r( spl_autoload_functions() );
возвращает:
Array
(
[0] => dataLoader
[1] => testLoader
)
и если вы инициализируете класс
$class_obj = new ClassName();
dataLoader попытается загрузить файл:
$folder.ClassName.php
Ваш скрипт загрузит вторую или любую другую зарегистрированную функцию, только если он не может найти класс в первую очередь.
Поэтому, если вы удалите свой класс $ в функции dataLoader, __autoload больше не найдет класс в первой зарегистрированной функции, поэтому он попытается найти его во второй зарегистрированной функции и т. Д.