3v4l.org

run code in 300+ PHP versions simultaneously
<?php class logger { function __construct() { print "logger constructing\n"; } function __wakeup() { print "logger wakeup\n"; } function __destruct() { print "logger destruct\n"; } } class obj { var $prop; function __wakeup() { $this->prop = 'awake'; } } $a = []; $a[] = new stdclass; $a[0]->one = new logger; $a[] = new obj; $a[1]->prop =& $a[0]; $a[] =& $a[1]->one; var_dump(serialize($a)); $x = 'a:3:{i:0;O:8:"stdClass":1:{i:0;O:6:"logger":0:{}}i:1;O:3:"obj":1:{s:4:"prop";R:2;}i:2;R:3}'; $y = unserialize($x); var_dump($y);
Output for 8.3.0 - 8.3.4, 8.3.6
logger constructing Deprecated: Creation of dynamic property obj::$one is deprecated in /in/trOiT on line 26 string(109) "a:3:{i:0;O:8:"stdClass":1:{s:3:"one";O:6:"logger":0:{}}i:1;O:3:"obj":2:{s:4:"prop";R:2;s:3:"one";N;}i:2;R:5;}" Warning: unserialize(): Error at offset 86 of 90 bytes in /in/trOiT on line 30 logger wakeup logger destruct bool(false) logger destruct
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 logger constructing Deprecated: Creation of dynamic property obj::$one is deprecated in /in/trOiT on line 26 string(109) "a:3:{i:0;O:8:"stdClass":1:{s:3:"one";O:6:"logger":0:{}}i:1;O:3:"obj":2:{s:4:"prop";R:2;s:3:"one";N;}i:2;R:5;}" Warning: unserialize(): Error at offset 86 of 90 bytes in /in/trOiT on line 30 logger wakeup logger destruct bool(false) logger destruct
Output for 8.2.0 - 8.2.18
logger constructing Deprecated: Creation of dynamic property obj::$one is deprecated in /in/trOiT on line 26 string(109) "a:3:{i:0;O:8:"stdClass":1:{s:3:"one";O:6:"logger":0:{}}i:1;O:3:"obj":2:{s:4:"prop";R:2;s:3:"one";N;}i:2;R:5;}" Notice: unserialize(): Error at offset 86 of 90 bytes in /in/trOiT on line 30 logger wakeup logger destruct bool(false) logger destruct
Output for 7.1.5 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.31, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28
logger constructing string(109) "a:3:{i:0;O:8:"stdClass":1:{s:3:"one";O:6:"logger":0:{}}i:1;O:3:"obj":2:{s:4:"prop";R:2;s:3:"one";N;}i:2;R:5;}" Notice: unserialize(): Error at offset 86 of 90 bytes in /in/trOiT on line 30 logger wakeup logger destruct bool(false) logger destruct
Output for 7.3.32 - 7.3.33
logger constructing string(109) "a:3:{i:0;O:8:"stdClass":1:{s:3:"one";O:6:"logger":0:{}}i:1;O:3:"obj":2:{s:4:"prop";R:2;s:3:"one";N;}i:2;R:5;}" logger wakeup logger destruct bool(false) logger destruct
Output for 7.1.0
logger constructing string(109) "a:3:{i:0;O:8:"stdClass":1:{s:3:"one";O:6:"logger":0:{}}i:1;O:3:"obj":2:{s:4:"prop";R:2;s:3:"one";N;}i:2;R:5;}" logger wakeup Notice: unserialize(): Error at offset 86 of 90 bytes in /in/trOiT on line 30 logger destruct bool(false) logger destruct
Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28, 7.0.0 - 7.0.20
logger constructing string(109) "a:3:{i:0;O:8:"stdClass":1:{s:3:"one";O:6:"logger":0:{}}i:1;O:3:"obj":2:{s:4:"prop";R:2;s:3:"one";N;}i:2;R:5;}" logger wakeup logger destruct Notice: unserialize(): Error at offset 86 of 90 bytes in /in/trOiT on line 30 bool(false) logger destruct

preferences:
182.82 ms | 402 KiB | 228 Q