コード例 #1
0
 private function makeArray(Clazz $type, array &$value)
 {
     $toReturn = new ArrayValueCommand($type->getComponentType());
     $this->identityMap->put($value, $toReturn);
     for ($i = 0, $j = ArrayType::getLength($value); $i < $j; $i++) {
         $arrayValue = ArrayType::get($value, $i);
         if (is_null($arrayValue)) {
             $toReturn->add(NullValueCommand::INSTANCE());
         } else {
             $valueType = $type->getComponentType()->isPrimitive() ? $type->getComponentType() : Classes::classOfValue($arrayValue);
             $toReturn->add($this->makeValue($valueType, $arrayValue));
         }
     }
     return $toReturn;
 }