3v4l.org

run code in 300+ PHP versions simultaneously
<?php $values = array_keys(ini_get_all()); $diff = []; $files = [\php_ini_loaded_file()]; if ($scanned = \php_ini_scanned_files()) { $files = \array_merge($files, $scanned); } foreach ($files as $ini) { fprintf(STDERR, "file: %s\n", $ini); $config = \parse_ini_file($ini, true); print_r(array_keys($config)); foreach ($values as $value) { $set = \ini_get($value); if (isset($config[$value]) && $set != $config[$value]) { $diff[] = sprintf("%s=%s", $value, $set); } } } print_r($diff);
Output for 7.3.0 - 7.3.31, 7.3.33, 7.4.0 - 7.4.25, 7.4.27 - 7.4.32, 8.0.0 - 8.0.12, 8.0.14 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.4, 8.3.6 - 8.3.7
Array ( [0] => PHP [1] => Date ) Array ( ) file: /etc/php.ini
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 ( [0] => PHP [1] => Date ) Array ( ) file: /etc/php.ini
Output for 8.0.13
Fatal error: Uncaught ValueError: parse_ini_file(): Argument #1 ($filename) cannot be empty in /in/TMrtr:14 Stack trace: #0 /in/TMrtr(14): parse_ini_file('', true) #1 {main} thrown in /in/TMrtr on line 14 file:
Process exited with code 255.
Output for 7.4.33
Array ( [0] => PHP [1] => Date ) Array ( ) file: /etc/php_archive.ini
Output for 7.3.32, 7.4.26
Warning: parse_ini_file(): Filename cannot be empty! in /in/TMrtr on line 14 Warning: array_keys() expects parameter 1 to be array, bool given in /in/TMrtr on line 15 Array ( ) file:

preferences:
194.19 ms | 402 KiB | 156 Q