3v4l.org

run code in 300+ PHP versions simultaneously
<?php public static function setKey($sessionKeys, $value) { $currentKey = ''; $counter = 0; $prevStep = $_SESSION; try { $session_keys_array = explode(':', $sessionKeys); foreach ($session_keys_array as $key) { $counter++; $currentKey .= '[\'' . $key . '\']'; if (array_key_exists($key, $prevStep)) { eval('$prevStep = $_SESSION' . $currentKey . ';'); if (!is_array($prevStep) && count($session_keys_array) > $counter) { throw new Exception ("\$_SESSION$currentKey is not an array"); } else if (count($session_keys_array) == $counter) { eval('$_SESSION' . $currentKey . ' = ' . $value . ';'); } } else if (is_array($prevStep) && count($session_keys_array) == $counter){ eval('$_SESSION' . $currentKey . ' = ' . $value . ';'); } } eval('var_dump($_SESSION' . $currentKey . ');'); } catch (Exception $e) { return false; } return eval('!empty($_SESSION' . $currentKey . ');'); } $_SESSION['1']['2']['3'] = 'zzzz'; setKey('1:2:3', 77);

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
7.0.20.0330.07020.30
7.0.10.0200.07320.19
7.0.00.0100.08320.09
5.6.170.0400.04320.51
5.6.160.0070.05720.47
5.6.150.0070.07718.18
5.6.140.0100.04718.15
5.6.130.0070.05318.24
5.6.120.0070.08321.03
5.6.110.0100.08320.98
5.6.100.0030.04020.95
5.6.90.0070.05321.09
5.6.80.0030.04020.50
5.5.310.0230.07320.27
5.5.300.0000.08017.90
5.5.290.0130.06717.98
5.5.280.0030.04020.77
5.5.270.0070.06320.89
5.5.260.0200.07020.89
5.5.250.0070.07020.68
5.5.240.0300.05320.34

preferences:
147.63 ms | 1398 KiB | 7 Q