Cita:
Iniciado por GatorV Es por regla que para almacenar objetos en sesiones debes de incluir la definicion antes del session_start();
Para extender un poco la respuesta. Cuando se ejecuta session_start() PHP des-serializa todos los objetos guardados en la sesión sin necesidad de llamar a
unserialize(). De la misma forma, si tenes objetos guardados en la sesión PHP serializara a todos estos objetos automaticamente al final de la ejecución del script sin necesidad de llamar a
serialize().
Como se puede leer, si un objeto se des-serializa y la definición de la clase no está presente este se vuelve inútil ya que pierde la asociación con la clase y por ende los métodos. Para resumir todo lo anterior, si guardas algún objeto en la sesión debes incluir la definición de la clase antes de llamar a session_start().
Saludos.