3v4l.org

run code in 300+ PHP versions simultaneously
<?php $start = new DateTime('yesterday'); if (is_callable(array($start, '__sleep'))) { echo "Called: __sleep()".PHP_EOL; var_dump($start->__sleep()); echo PHP_EOL.PHP_EOL.PHP_EOL; } $serialized = array( 'class' => get_class($start), 'state' => (array) $start ); echo "Serialized Data:".PHP_EOL; var_dump($serialized); echo PHP_EOL.PHP_EOL.PHP_EOL; unset($start); if (is_callable(array($serialized['class'], '__set_state'))) { echo "Called: __set_state()".PHP_EOL; var_dump($serialized['class']::__set_state($serialized['state'])); echo PHP_EOL.PHP_EOL.PHP_EOL; } if (is_callable(array($serialized['class'], '__wake'))) { echo "Called: __wake()".PHP_EOL; var_dump($serialized['class']::__wake()); echo PHP_EOL.PHP_EOL.PHP_EOL; }
Output for 5.5.14 - 5.5.38, 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 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.12, 8.0.14 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.7
Serialized Data: array(2) { ["class"]=> string(8) "DateTime" ["state"]=> array(3) { ["date"]=> string(26) "2016-01-05 00:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } } Called: __set_state() object(DateTime)#1 (3) { ["date"]=> string(26) "2016-01-05 00:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" }
Output for 7.3.32 - 7.3.33, 8.0.13
Serialized Data: array(2) { ["class"]=> string(8) "DateTime" ["state"]=> array(3) { ["date"]=> string(26) "2016-01-05 00:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } } Called: __set_state() object(DateTime)#1 (3) { ["date"]=> string(26) "2016-01-05 00:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" }
Output for 5.5.0 - 5.5.13
Serialized Data: array(2) { ["class"]=> string(8) "DateTime" ["state"]=> array(3) { ["date"]=> string(19) "2016-01-05 00:00:00" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } } Called: __set_state() object(DateTime)#1 (3) { ["date"]=> string(19) "2016-01-05 00:00:00" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" }

preferences:
252.41 ms | 402 KiB | 328 Q