3v4l.org

run code in 300+ PHP versions simultaneously
<?php function dumpMappedRow($mappedRow) { var_dump([ 'created' => $mappedRow['created']->format(DateTime::ISO8601), 'modified' => $mappedRow['modified']->format(DateTime::ISO8601) ]); } function mutableDemo() { $date = DateTime::createFromFormat("Y-m-d", "2015-11-24"); $mappedRow['created'] = $date; $mappedRow['modified'] = $date; dumpMappedRow($mappedRow); $mappedRow['modified']->setDate(2016, 12, 25); dumpMappedRow($mappedRow); if ($mappedRow['created']->getTimestamp() === $mappedRow['modified']->getTimestamp()) { echo "\nCreated and Modified are set to the same value."; } } function immutableDemo() { $date = DateTimeImmutable::createFromFormat("Y-m-d", "2015-11-24"); $mappedRow['created'] = $date; $mappedRow['modified'] = $date; dumpMappedRow($mappedRow); // This actually returns a new object rather than modifying the existing one. $mappedRow['modified'] = $mappedRow['modified']->setDate(2016, 12, 25); dumpMappedRow($mappedRow); if ($mappedRow['created']->getTimestamp() === $mappedRow['modified']->getTimestamp()) { echo "\nCreated and Modified are set to the same value."; } } mutableDemo(); echo "\n\n==========\n\n"; immutableDemo();
Output for 5.5.4 - 5.5.38, 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.31, 7.1.33, 7.2.0 - 7.2.21, 7.2.24 - 7.2.33, 7.3.0 - 7.3.8, 7.3.10 - 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.4, 8.3.6
array(2) { ["created"]=> string(24) "2015-11-24T21:23:37+0100" ["modified"]=> string(24) "2015-11-24T21:23:37+0100" } array(2) { ["created"]=> string(24) "2016-12-25T21:23:37+0100" ["modified"]=> string(24) "2016-12-25T21:23:37+0100" } Created and Modified are set to the same value. ========== array(2) { ["created"]=> string(24) "2015-11-24T21:23:37+0100" ["modified"]=> string(24) "2015-11-24T21:23:37+0100" } array(2) { ["created"]=> string(24) "2015-11-24T21:23:37+0100" ["modified"]=> string(24) "2016-12-25T21:23:37+0100" }
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 array(2) { ["created"]=> string(24) "2015-11-24T21:23:37+0100" ["modified"]=> string(24) "2015-11-24T21:23:37+0100" } array(2) { ["created"]=> string(24) "2016-12-25T21:23:37+0100" ["modified"]=> string(24) "2016-12-25T21:23:37+0100" } Created and Modified are set to the same value. ========== array(2) { ["created"]=> string(24) "2015-11-24T21:23:37+0100" ["modified"]=> string(24) "2015-11-24T21:23:37+0100" } array(2) { ["created"]=> string(24) "2015-11-24T21:23:37+0100" ["modified"]=> string(24) "2016-12-25T21:23:37+0100" }
Output for 7.3.32 - 7.3.33, 8.0.13
array(2) { ["created"]=> string(24) "2015-11-24T19:23:37+0000" ["modified"]=> string(24) "2015-11-24T19:23:37+0000" } array(2) { ["created"]=> string(24) "2016-12-25T19:23:37+0000" ["modified"]=> string(24) "2016-12-25T19:23:37+0000" } Created and Modified are set to the same value. ========== array(2) { ["created"]=> string(24) "2015-11-24T19:23:37+0000" ["modified"]=> string(24) "2015-11-24T19:23:37+0000" } array(2) { ["created"]=> string(24) "2015-11-24T19:23:37+0000" ["modified"]=> string(24) "2016-12-25T19:23:37+0000" }
Output for 7.1.32, 7.2.22 - 7.2.23, 7.3.9
array(2) { ["created"]=> string(24) "2015-11-24T21:23:38+0100" ["modified"]=> string(24) "2015-11-24T21:23:38+0100" } array(2) { ["created"]=> string(24) "2016-12-25T21:23:38+0100" ["modified"]=> string(24) "2016-12-25T21:23:38+0100" } Created and Modified are set to the same value. ========== array(2) { ["created"]=> string(24) "2015-11-24T21:23:38+0100" ["modified"]=> string(24) "2015-11-24T21:23:38+0100" } array(2) { ["created"]=> string(24) "2015-11-24T21:23:38+0100" ["modified"]=> string(24) "2016-12-25T21:23:38+0100" }
Output for 5.5.0 - 5.5.3
array(2) { ["created"]=> string(24) "2015-11-24T21:23:37+0100" ["modified"]=> string(24) "2015-11-24T21:23:37+0100" } array(2) { ["created"]=> string(24) "2016-12-25T21:23:37+0100" ["modified"]=> string(24) "2016-12-25T21:23:37+0100" } Created and Modified are set to the same value. ========== array(2) { ["created"]=> string(24) "2015-11-24T21:23:37+0100" ["modified"]=> string(24) "2015-11-24T21:23:37+0100" } array(2) { ["created"]=> string(24) "2016-12-25T21:23:37+0100" ["modified"]=> string(24) "2016-12-25T21:23:37+0100" } Created and Modified are set to the same value.
Output for 5.4.0 - 5.4.45
array(2) { ["created"]=> string(24) "2015-11-24T21:23:37+0100" ["modified"]=> string(24) "2015-11-24T21:23:37+0100" } array(2) { ["created"]=> string(24) "2016-12-25T21:23:37+0100" ["modified"]=> string(24) "2016-12-25T21:23:37+0100" } Created and Modified are set to the same value. ========== Fatal error: Class 'DateTimeImmutable' not found in /in/llqgu on line 32
Process exited with code 255.

preferences:
306.46 ms | 402 KiB | 376 Q