Index: XmlRpc/Value.php =================================================================== --- XmlRpc/Value.php (revision 23621) +++ XmlRpc/Value.php (working copy) @@ -321,49 +321,31 @@ require_once 'Zend/XmlRpc/Value/DateTime.php'; return new Zend_XmlRpc_Value_DateTime($value); - if ($value instanceof Zend_Crypt_Math_BigInteger) { - require_once 'Zend/XmlRpc/Value/BigInteger.php'; - return new Zend_XmlRpc_Value_BigInteger($value); - } - - if ($value instanceof Zend_Date or $value instanceof DateTime) { - require_once 'Zend/XmlRpc/Value/DateTime.php'; - return new Zend_XmlRpc_Value_DateTime($value); - } - - // Otherwise, we convert the object into a struct - $value = get_object_vars($value); - // Break intentionally omitted - case 'array': - // Default native type for a PHP array (a simple numeric array) is 'array' + case self::XMLRPC_TYPE_ARRAY: require_once 'Zend/XmlRpc/Value/Array.php'; - $obj = 'Zend_XmlRpc_Value_Array'; + return new Zend_XmlRpc_Value_Array($value); - // Determine if this is an associative array - if (!empty($value) && is_array($value) && (array_keys($value) !== range(0, count($value) - 1))) { - require_once 'Zend/XmlRpc/Value/Struct.php'; - $obj = 'Zend_XmlRpc_Value_Struct'; - } - return new $obj($value); + case self::XMLRPC_TYPE_STRUCT: + require_once 'Zend/XmlRpc/Value/Struct.php'; + return new Zend_XmlRpc_Value_Struct($value); - case 'integer': + case self::XMLRPC_TYPE_INTEGER: require_once 'Zend/XmlRpc/Value/Integer.php'; return new Zend_XmlRpc_Value_Integer($value); - case 'double': + case self::XMLRPC_TYPE_DOUBLE: require_once 'Zend/XmlRpc/Value/Double.php'; return new Zend_XmlRpc_Value_Double($value); - case 'boolean': + case self::XMLRPC_TYPE_BOOLEAN: require_once 'Zend/XmlRpc/Value/Boolean.php'; return new Zend_XmlRpc_Value_Boolean($value); - case 'NULL': - case 'null': + case self::XMLRPC_TYPE_NIL: require_once 'Zend/XmlRpc/Value/Nil.php'; return new Zend_XmlRpc_Value_Nil(); - case 'string': + case self::XMLRPC_TYPE_STRING: // Fall through to the next case default: // If type isn't identified (or identified as string), it treated as string