3v4l.org

run code in 300+ PHP versions simultaneously
<?php function setKey($session_keys, $value) { $current_key = ''; $counter = 0; $prev_step = $_SESSION; try { $session_keys_array = explode(':', $session_keys); krsort($session_keys_array); $c = count($session_keys_array); var_dump($c); $count = 0; foreach ($session_keys_array as $key) { $count++; $arr = array(); switch ($count) { case 1: arr[$key] = $value; break; case ($count > 1 AND $count < $c): $arr[$key] = $arr; break; case $c: $_SESSION[$key] = $arr; break; case ($count >$c): return $_SESSION[$key]; break; } } } catch (Exception $e) { //TODO:log notice if Session[currentKey] is not an array return false; } return array_key_exists($key,$prev_step) && eval('!empty($_SESSION' . $current_key . ');'); } $_SESSION['1']['2']['3'] = 'zzzz'; setKey('1:2:3', 77); echo $_SESSION['1']['2']['3'];

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.0270.07020.23
7.0.10.0130.06020.34
7.0.00.0030.05020.32
5.6.170.0130.04320.44
5.6.160.0070.06720.57
5.6.150.0070.04018.18
5.6.140.0100.06718.20
5.6.130.0070.08318.26
5.6.120.0030.08721.00
5.6.110.0200.07021.14
5.6.100.0000.08321.01
5.6.90.0070.09020.98
5.6.80.0200.06720.28
5.5.310.0300.05020.41
5.5.300.0100.07717.98
5.5.290.0100.07717.95
5.5.280.0070.03720.77
5.5.270.0000.04320.82
5.5.260.0200.06320.89
5.5.250.0000.09020.50
5.5.240.0230.06720.27

preferences:
135.56 ms | 1398 KiB | 7 Q