On Thu, 26 Sep 2002, Jimmy wrote: > For example: > > $string = "1"; > wddx_serialize($string, WDDX_INTEGER); > // var $string will be encoded as integer, instead of string > > $file_name = "contain some unicode char"; > wddx_serialize($file_name, WDDX_BINARY); > // var $file_name will be encoded as binary, instead of string > > > Two good reasons why this should be implemented: > > 1. The main purpose of WDDX is to exchange data between diff lang, and > auto-detecting var type will break this purpose. Moreover, the > type-juggling in PHP will make the case worst. > > For example, consider these two data: > > array ("2" => "Two", "4" => "Four", "5" => "Five"); > array ("0" => "Zero", "1" => "One", "2" => "Two"); > > The first one will be interpreted by WDDX as hash (assoc array). > But the second one, where the key happen to be a sequence > starting from 0, will be interpreted as normal array, not hash. > > 2. If users can specify the type of a variable, then PHP's WDDX can support > all type which is defined in WDDX standard. > For example binary type. Currently there's no way to create a > WDDX packet with binary type, because PHP don't have binary type > variable. There's a workaround to manually base64 the var, but this > will require a change at the other end to handle this workaround > too, which in some cases is not possible.
I think it's a good idea. The only problem I see is making it work with all three serialization functions. wddx_serialize_value() is fine, but wddx_serialize_vars() and wddx_add_vars() take variable number of arguments, so it's not clear how it would work in those cases. -Andrei http://www.gravitonic.com/ * Change is the only constant. * -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php