3v4l.org

run code in 300+ PHP versions simultaneously
<?php $do_excel = 1; $visual_na = '-'; $visual_taken = 'X'; $visual_required = 'R'; $employee_header = 'Employee'; $hire_date_header = 'Hire Date'; $percentage_header = 'Percentage of Required Complete'; $header_array = array($employee_header, $hire_date_header, $percentage_header); if(isset($_REQUEST['by'])) $split_by = strtolower($_REQUEST['by']); //department, manager, or undefined for single sheet //sorting algorithm function cmp_class($a, $b) { switch($a){ case $GLOBALS['employee_header']: return -1; case $GLOBALS['hire_date_header']: if($b == $GLOBALS['employee_header']) return 1; return -1; case $GLOBALS['percentage_header']: return 1; default: if($b == $GLOBALS['employee_header'] or $b == $GLOBALS['hire_date_header']) return 1; return $a > $b; } } //split function, to simplify getting a sheet where splits exists or a default sheet where it doesn't function getSheet($row_data){ if(isset($GLOBALS['split_by'])) return $row_data[$GLOBALS['split_by']]; return 'Sheet1'; } if(isset($_GET['form']) && $_GET['form'] == 'old'){$visual_na='N'; $visual_taken='X'; $visual_required=' ';}?>
Output for 4.3.0 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.24 - 5.5.35, 5.6.7 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
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

preferences:
237.6 ms | 402 KiB | 356 Q