Server IP : 192.158.238.246 / Your IP : 18.224.2.133 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /opt/cpanel/ea-php80/root/usr/share/tests/pecl/igbinary/tests/ |
Upload File : |
--TEST-- Correctly unserialize cyclic object references --SKIPIF-- --INI-- igbinary.compact_strings = On --FILE-- <?php $a = new stdClass(); $a->foo = &$a; $a->bar = &$a; $b = new stdClass(); $b->cyclic = &$a; printf("%s\n", serialize($b)); $ig_ser = igbinary_serialize($b); printf("%s\n", bin2hex($ig_ser)); $ig = igbinary_unserialize($ig_ser); printf("%s\n", serialize($ig)); var_dump($ig); $f = &$ig->cyclic->foo; $f = 'V'; var_dump($ig); // Note: While the php7 unserializer consistently makes a distinction between refs to an object and non-refs, // the php5 serializer does not. --EXPECTF-- O:8:"stdClass":1:{s:6:"cyclic";O:8:"stdClass":2:{s:3:"foo";R:2;s:3:"bar";R:2;}} 000000021708737464436c617373140111066379636c6963251a0014021103666f6f2522011103626172252201 O:8:"stdClass":1:{s:6:"cyclic";O:8:"stdClass":2:{s:3:"foo";R:2;s:3:"bar";R:2;}} object(stdClass)#3 (1) { ["cyclic"]=> &object(stdClass)#4 (2) { ["foo"]=> *RECURSION* ["bar"]=> *RECURSION* } } object(stdClass)#3 (1) { ["cyclic"]=> &string(1) "V" }