/** * private function recXmlToVars * method used to unserialize the object, recursive * @Param (array) aProps : the array we work on recursively */ private function recXmlToVars($aProps) { foreach ($aProps as $clef => $val) { $cpt = count($val); if ($cpt > 0) { foreach ($val as $k => $v) { $cpt2 = count($v); if ($cpt2 > 0) { if (substr($k, 0, 7) === 'object_') { foreach ($this->oPropObj as $kObj => $vObj) { if ($this->oPropObj[$kObj]['class'] === substr($k, 7)) { $oXmlSerializer = new self($this->oPropObj[$kObj]['object']); $oXmlSerializer->getProps(); $sXml = $oXmlSerializer->varsToXml(); $oXmlSerializer->xmlToVars($sXml); $this->oObj->{$clef}[substr($k, 7)] = $oXmlSerializer->getObj(); } } } else { $this->recXmlToVars($v); } } else { if ($k[0] === '_') { $k = substr($k, 1, strlen($k) - 1); } $this->oObj->{$clef}[$k] = current($v); } } } elseif (!empty($val)) { $this->oObj->{$clef} = current($val); } } }