unserialize() requires class definition loaded before actually unserializing data. unserialize_callback_func is called when class definition is not loaded and spl_autoload_call tries to use all autoloaders registered to load class needed for unserialize().