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); foreach ($session_keys_array as $key) { $counter++; $current_key .= '[\'' . $key . '\']'; if (count($session_keys_array) > $counter) { if (is_array($prev_step) && !array_key_exists($key, $prev_step)) { eval('$_SESSION' . $current_key . ' = array();'); } else if (!is_array($prev_step) || (array_key_exists($key, $prev_step)) && !is_array($prev_step[$key]) ) { throw new Exception ("\$_SESSION$current_key is not an array"); } eval('$prevStep = $_SESSION' . $current_key . ';'); } else { eval('$_SESSION' . $current_key . ' = ' . $value . ';'); } } } catch (Exception $e) { //TODO:log notice if Session[currentKey] is not an array echo $e->getMessage(); return false; } return eval('$_SESSION' . $current_key . ';'); } function setSessionTestingData() { $agent = 5; $ticket = 6; $_SESSION = array( 'agent_id' => '2', 'ticket_id' => '3', 'agent' => $agent, 'ticket' => $ticket, 'sub_array' => array( 'sub' => 4, 'agent' => $agent, 'ticket' => $ticket, ), ); return $_SESSION; } $_SESSION = setSessionTestingData(); var_dump(setKey('sub_array:sub:unexistant:none', '4')); !empty($_SESSION['sub_array']['sub][unexistant]); var_dump(!isset($_SESSION['sub_array']['sub][unexistant]);

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.0400.05320.09
7.0.10.0100.08020.22
7.0.00.0100.08320.07
5.6.170.0230.05020.54
5.6.160.0170.07020.76
5.6.150.0100.07718.29
5.6.140.0000.08718.21
5.6.130.0130.04718.27
5.6.120.0170.07721.01
5.6.110.0100.07721.00
5.6.100.0100.05321.00
5.6.90.0030.08320.98
5.6.80.0130.08020.54
5.5.310.0330.06320.43
5.5.300.0070.07317.96
5.5.290.0100.08318.04
5.5.280.0130.04020.89
5.5.270.0070.04020.89
5.5.260.0070.06320.74
5.5.250.0030.05320.72
5.5.240.0130.07320.30

preferences:
141.32 ms | 1394 KiB | 7 Q