forcing access to __PHP_Incomplete_Class object properties

前端 未结 8 1895
夕颜
夕颜 2020-11-30 06:43

I\'m writing a module for a php cms. In a function (a callback) I can access an object that comes from the framework code.

This object is of type __PHP_Incomp

8条回答
  •  心在旅途
    2020-11-30 06:52

    This issue appends when you un serialize an object of a class that hasn't been included yet. For exemple, if you call session_start before include the class.

    A PHPIncompleteClass object can't be accessed directly, but it's ok with foreach, serialize and gettype. Calling is_object with an PHPIncompleteClass object will result false.

    So, if you find a '__PHP_Incomplete_Class' object in your session and you've included your class after the session_load, you can use this function :

    function fixObject (&$object)
    {
      if (!is_object ($object) && gettype ($object) == 'object')
        return ($object = unserialize (serialize ($object)));
      return $object;
    }
    

    This will results a usable object :

    fixObject($_SESSION['member']);
    

提交回复
热议问题