Powered by PmWiki
When I send an associative array, the other side interprets it as a list and not as a map, why does this happen?
The first version of HessianPHP was designed to send any array as a list, because of the problem of knowing if a php array *is* a list, an indexed list of elements whose indexes start at 0 and are all continuous integers.
Currently, HessianPHP will try to detect if an array is associative and if so, it will send a map, otherwise a list. This is not strict, so be careful when creating arrays for sending. HessianPHP considers an array associative if at least one of its keys is a string or it's negative, so if you create an array that has only positive integer numbers as keys, but they are not in order, it will send an ordered list.
PHP has some weird rules about array keys, you can have negative integer array keys, keys with the value of null, false, true, empty string and floating point values which get casted into string data type.