|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull Requests
Pull requests:
HistoryAllCommentsChangesGit/SVN commits
[2017-08-02 16:48 UTC] nikic@php.net
-Summary: Different serialization for classes
+Summary: Incorrect xmlrpc serialization for classes with
declared properties
[2017-10-04 20:09 UTC] spagalax at yahoo dot com
[2017-10-04 20:20 UTC] nikic@php.net
-Status: Open
+Status: Closed
-Assigned To:
+Assigned To: nikic
[2017-10-04 20:20 UTC] nikic@php.net
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Oct 23 02:00:01 2025 UTC |
Description: ------------ xmlrpc_encode and xmlrpc_encode_request works different if the properties $xmlrpc_type and $scalar are defined before assigning values to an object. If the properties $xmlrpc_type and $scalar are defined, xmlrpc_encode* don't use the values for serialization. Test script: --------------- class Foo { } class Bar { public $xmlrpc_type; public $scalar; } $foo = new Foo(); $foo->xmlrpc_type = 'base64'; $foo->scalar = 'foobar'; $bar = new Bar(); $bar->xmlrpc_type = 'base64'; $bar->scalar = 'foobar'; $xml = xmlrpc_encode([ 'foo' => $foo, 'bar' => $bar ]); var_dump($xml); Expected result: ---------------- <?xml version="1.0" encoding="utf-8"?> <params> <param> <value> <struct> <member> <name>foo</name> <value> <base64>Zm9vYmFy </base64> </value> </member> <member> <name>bar</name> <value> <base64>Zm9vYmFy </base64> </value> </member> </struct> </value> </param> </params> Actual result: -------------- <?xml version="1.0" encoding="utf-8"?> <params> <param> <value> <struct> <member> <name>foo</name> <value> <base64>Zm9vYmFy </base64> </value> </member> <member> <name>bar</name> <value> <struct> <member> <name>xmlrpc_type</name> <value> <string>base64</string> </value> </member> <member> <name>scalar</name> <value> <string>foobar</string> </value> </member> </struct> </value> </member> </struct> </value> </param> </params>