src/Types/BaseType.php
private static function determineActualValueToAssign($class, $property, $value)
    {
        if (!array_key_exists($property, self::$properties[$class])) {
            return $value;
        }

        $info = self::propertyInfo($class, $property);

        if ($info['repeatable'] && is_array($value)) {
            $values = [];
            foreach ($value as $val) {
                $values[] = self::actualValue($info, $val);
            }
            return $values;
        }

        return self::actualValue($info, $value);
    }
private static function determineActualValueToAssign($class, $property, $value)
    {
        if (!array_key_exists($property, self::$properties[$class])) {
            return $value;
        }

        $info = self::propertyInfo($class, $property);

        if ($info['repeatable'] && is_array($value)) {
            $values = [];
            foreach ($value as $val) {
                $values[] = self::actualValue($info, $val);
            }
            return $values;
        }

        return self::actualValue($info, $value);
    }
Helper function when assigning values via the ctor.
Determines the actual value to assign to a property.

@param string $class The name of the class the property belong to.
@param string $property The property name.
@param mixed $value The property value.

@return mixed