????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 216.73.216.238 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/self/root/home/b8009/php-5.6.22/ext/standard/tests/serialize/ |
Upload File : |
--TEST-- Object serialization / unserialization: references amongst properties --INI-- error_reporting = E_ALL & ~E_STRICT --FILE-- <?php /* Prototype : proto string serialize(mixed variable) * Description: Returns a string representation of variable (which can later be unserialized) * Source code: ext/standard/var.c * Alias to functions: */ /* Prototype : proto mixed unserialize(string variable_representation) * Description: Takes a string representation of variable and recreates it * Source code: ext/standard/var.c * Alias to functions: */ function check(&$obj) { var_dump($obj); $ser = serialize($obj); var_dump($ser); $uobj = unserialize($ser); var_dump($uobj); $uobj->a = "obj->a.changed"; var_dump($uobj); $uobj->b = "obj->b.changed"; var_dump($uobj); $uobj->c = "obj->c.changed"; var_dump($uobj); } echo "\n\n--- a refs b:\n"; $obj = new stdClass; $obj->a = &$obj->b; $obj->b = 1; $obj->c = 1; check($obj); echo "\n\n--- a refs c:\n"; $obj = new stdClass; $obj->a = &$obj->c; $obj->b = 1; $obj->c = 1; check($obj); echo "\n\n--- b refs a:\n"; $obj = new stdClass; $obj->a = 1; $obj->b = &$obj->a; $obj->c = 1; check($obj); echo "\n\n--- b refs c:\n"; $obj = new stdClass; $obj->a = 1; $obj->b = &$obj->c; $obj->c = 1; check($obj); echo "\n\n--- c refs a:\n"; $obj = new stdClass; $obj->a = 1; $obj->b = 1; $obj->c = &$obj->a; check($obj); echo "\n\n--- c refs b:\n"; $obj = new stdClass; $obj->a = 1; $obj->b = 1; $obj->c = &$obj->b; check($obj); echo "\n\n--- a,b refs c:\n"; $obj = new stdClass; $obj->a = &$obj->c; $obj->b = &$obj->c; $obj->c = 1; check($obj); echo "\n\n--- a,c refs b:\n"; $obj = new stdClass; $obj->a = &$obj->b; $obj->b = 1; $obj->c = &$obj->b; check($obj); echo "\n\n--- b,c refs a:\n"; $obj = new stdClass; $obj->a = 1; $obj->b = &$obj->a; $obj->c = &$obj->a; check($obj); echo "Done"; ?> --EXPECTF-- --- a refs b: object(stdClass)#%d (3) { ["b"]=> &int(1) ["a"]=> &int(1) ["c"]=> int(1) } string(55) "O:8:"stdClass":3:{s:1:"b";i:1;s:1:"a";R:2;s:1:"c";i:1;}" object(stdClass)#%d (3) { ["b"]=> &int(1) ["a"]=> &int(1) ["c"]=> int(1) } object(stdClass)#%d (3) { ["b"]=> &string(14) "obj->a.changed" ["a"]=> &string(14) "obj->a.changed" ["c"]=> int(1) } object(stdClass)#%d (3) { ["b"]=> &string(14) "obj->b.changed" ["a"]=> &string(14) "obj->b.changed" ["c"]=> int(1) } object(stdClass)#%d (3) { ["b"]=> &string(14) "obj->b.changed" ["a"]=> &string(14) "obj->b.changed" ["c"]=> string(14) "obj->c.changed" } --- a refs c: object(stdClass)#%d (3) { ["c"]=> &int(1) ["a"]=> &int(1) ["b"]=> int(1) } string(55) "O:8:"stdClass":3:{s:1:"c";i:1;s:1:"a";R:2;s:1:"b";i:1;}" object(stdClass)#%d (3) { ["c"]=> &int(1) ["a"]=> &int(1) ["b"]=> int(1) } object(stdClass)#%d (3) { ["c"]=> &string(14) "obj->a.changed" ["a"]=> &string(14) "obj->a.changed" ["b"]=> int(1) } object(stdClass)#%d (3) { ["c"]=> &string(14) "obj->a.changed" ["a"]=> &string(14) "obj->a.changed" ["b"]=> string(14) "obj->b.changed" } object(stdClass)#%d (3) { ["c"]=> &string(14) "obj->c.changed" ["a"]=> &string(14) "obj->c.changed" ["b"]=> string(14) "obj->b.changed" } --- b refs a: object(stdClass)#%d (3) { ["a"]=> &int(1) ["b"]=> &int(1) ["c"]=> int(1) } string(55) "O:8:"stdClass":3:{s:1:"a";i:1;s:1:"b";R:2;s:1:"c";i:1;}" object(stdClass)#%d (3) { ["a"]=> &int(1) ["b"]=> &int(1) ["c"]=> int(1) } object(stdClass)#%d (3) { ["a"]=> &string(14) "obj->a.changed" ["b"]=> &string(14) "obj->a.changed" ["c"]=> int(1) } object(stdClass)#%d (3) { ["a"]=> &string(14) "obj->b.changed" ["b"]=> &string(14) "obj->b.changed" ["c"]=> int(1) } object(stdClass)#%d (3) { ["a"]=> &string(14) "obj->b.changed" ["b"]=> &string(14) "obj->b.changed" ["c"]=> string(14) "obj->c.changed" } --- b refs c: object(stdClass)#%d (3) { ["a"]=> int(1) ["c"]=> &int(1) ["b"]=> &int(1) } string(55) "O:8:"stdClass":3:{s:1:"a";i:1;s:1:"c";i:1;s:1:"b";R:3;}" object(stdClass)#%d (3) { ["a"]=> int(1) ["c"]=> &int(1) ["b"]=> &int(1) } object(stdClass)#%d (3) { ["a"]=> string(14) "obj->a.changed" ["c"]=> &int(1) ["b"]=> &int(1) } object(stdClass)#%d (3) { ["a"]=> string(14) "obj->a.changed" ["c"]=> &string(14) "obj->b.changed" ["b"]=> &string(14) "obj->b.changed" } object(stdClass)#%d (3) { ["a"]=> string(14) "obj->a.changed" ["c"]=> &string(14) "obj->c.changed" ["b"]=> &string(14) "obj->c.changed" } --- c refs a: object(stdClass)#%d (3) { ["a"]=> &int(1) ["b"]=> int(1) ["c"]=> &int(1) } string(55) "O:8:"stdClass":3:{s:1:"a";i:1;s:1:"b";i:1;s:1:"c";R:2;}" object(stdClass)#%d (3) { ["a"]=> &int(1) ["b"]=> int(1) ["c"]=> &int(1) } object(stdClass)#%d (3) { ["a"]=> &string(14) "obj->a.changed" ["b"]=> int(1) ["c"]=> &string(14) "obj->a.changed" } object(stdClass)#%d (3) { ["a"]=> &string(14) "obj->a.changed" ["b"]=> string(14) "obj->b.changed" ["c"]=> &string(14) "obj->a.changed" } object(stdClass)#%d (3) { ["a"]=> &string(14) "obj->c.changed" ["b"]=> string(14) "obj->b.changed" ["c"]=> &string(14) "obj->c.changed" } --- c refs b: object(stdClass)#%d (3) { ["a"]=> int(1) ["b"]=> &int(1) ["c"]=> &int(1) } string(55) "O:8:"stdClass":3:{s:1:"a";i:1;s:1:"b";i:1;s:1:"c";R:3;}" object(stdClass)#%d (3) { ["a"]=> int(1) ["b"]=> &int(1) ["c"]=> &int(1) } object(stdClass)#%d (3) { ["a"]=> string(14) "obj->a.changed" ["b"]=> &int(1) ["c"]=> &int(1) } object(stdClass)#%d (3) { ["a"]=> string(14) "obj->a.changed" ["b"]=> &string(14) "obj->b.changed" ["c"]=> &string(14) "obj->b.changed" } object(stdClass)#%d (3) { ["a"]=> string(14) "obj->a.changed" ["b"]=> &string(14) "obj->c.changed" ["c"]=> &string(14) "obj->c.changed" } --- a,b refs c: object(stdClass)#%d (3) { ["c"]=> &int(1) ["a"]=> &int(1) ["b"]=> &int(1) } string(55) "O:8:"stdClass":3:{s:1:"c";i:1;s:1:"a";R:2;s:1:"b";R:2;}" object(stdClass)#%d (3) { ["c"]=> &int(1) ["a"]=> &int(1) ["b"]=> &int(1) } object(stdClass)#%d (3) { ["c"]=> &string(14) "obj->a.changed" ["a"]=> &string(14) "obj->a.changed" ["b"]=> &string(14) "obj->a.changed" } object(stdClass)#%d (3) { ["c"]=> &string(14) "obj->b.changed" ["a"]=> &string(14) "obj->b.changed" ["b"]=> &string(14) "obj->b.changed" } object(stdClass)#%d (3) { ["c"]=> &string(14) "obj->c.changed" ["a"]=> &string(14) "obj->c.changed" ["b"]=> &string(14) "obj->c.changed" } --- a,c refs b: object(stdClass)#%d (3) { ["b"]=> &int(1) ["a"]=> &int(1) ["c"]=> &int(1) } string(55) "O:8:"stdClass":3:{s:1:"b";i:1;s:1:"a";R:2;s:1:"c";R:2;}" object(stdClass)#%d (3) { ["b"]=> &int(1) ["a"]=> &int(1) ["c"]=> &int(1) } object(stdClass)#%d (3) { ["b"]=> &string(14) "obj->a.changed" ["a"]=> &string(14) "obj->a.changed" ["c"]=> &string(14) "obj->a.changed" } object(stdClass)#%d (3) { ["b"]=> &string(14) "obj->b.changed" ["a"]=> &string(14) "obj->b.changed" ["c"]=> &string(14) "obj->b.changed" } object(stdClass)#%d (3) { ["b"]=> &string(14) "obj->c.changed" ["a"]=> &string(14) "obj->c.changed" ["c"]=> &string(14) "obj->c.changed" } --- b,c refs a: object(stdClass)#%d (3) { ["a"]=> &int(1) ["b"]=> &int(1) ["c"]=> &int(1) } string(55) "O:8:"stdClass":3:{s:1:"a";i:1;s:1:"b";R:2;s:1:"c";R:2;}" object(stdClass)#%d (3) { ["a"]=> &int(1) ["b"]=> &int(1) ["c"]=> &int(1) } object(stdClass)#%d (3) { ["a"]=> &string(14) "obj->a.changed" ["b"]=> &string(14) "obj->a.changed" ["c"]=> &string(14) "obj->a.changed" } object(stdClass)#%d (3) { ["a"]=> &string(14) "obj->b.changed" ["b"]=> &string(14) "obj->b.changed" ["c"]=> &string(14) "obj->b.changed" } object(stdClass)#%d (3) { ["a"]=> &string(14) "obj->c.changed" ["b"]=> &string(14) "obj->c.changed" ["c"]=> &string(14) "obj->c.changed" } Done