Had this error when loading an object from the $_SESSION?
Here’s why, from official PHP docs:
It’s possible to set a callback-function which will be called, if an undefined class should be instantiated during unserializing. (to prevent getting an incomplete object “__PHP_Incomplete_Class”.) Use your php.ini, ini_set() or .htaccess to define ‘unserialize_callback_func’. Everytime an undefined class should be instantiated, it’ll be called. To disable this feature just empty this setting.
A simple fix would be to load the session_start AFTER the object class declaration, but if it is not possible, then you could simply double-serialize the object. Like this:
// some code running in your application // then, $_SESSION['myobject'] = serialize($object);
// then when we need it $object = unserialize($_SESSION['myobject']);
The reason of the error is because the objects stored in sessions are converted to serialized string, and when we call session_start(), it tries to initialize the object with the class definition which isn’t available yet.