Exemplo n.º 1
0
 /**
  * Constructor
  *
  * Sets the $_SESSION superglobal to an ArrayObject, maintaining previous
  * values if any discovered.
  *
  * @param array|null $input
  * @param int        $flags
  * @param string     $iteratorClass
  */
 public function __construct($input = null, $flags = ArrayObject::ARRAY_AS_PROPS, $iteratorClass = '\\ArrayIterator')
 {
     $resetSession = true;
     if (null === $input && isset($_SESSION)) {
         $input = $_SESSION;
         if (is_object($input) && $_SESSION instanceof ArrayObject) {
             $resetSession = false;
         } elseif (is_object($input) && !$_SESSION instanceof ArrayObject) {
             $input = (array) $input;
         }
     } elseif (null === $input) {
         $input = array();
     }
     parent::__construct($input, $flags, $iteratorClass);
     if ($resetSession) {
         $_SESSION = $this;
     }
 }