3v4l.org

run code in 300+ PHP versions simultaneously
<?phpif ( ! isset($argv[1]) || ! isset($argv[2])){ exit("An argument was expected.");}$base = substr($argv[1], 0, -1);$unit = substr($argv[1], strlen($argv[1])-1, 1);if ( ! is_numeric($argv[1][strlen($argv[1])-2])){ $base = substr($argv[1], 0, -2); $unit = substr($argv[1], strlen($argv[1])-2, 2);}if ( strlen($argv[1]) >= 3 && ! is_numeric($argv[1][strlen($argv[1])-3])){ $base = substr($argv[1], 0, -3); $unit = substr($argv[1], strlen($argv[1])-3, 3);}$targetUnit = $argv[2];if ( ! is_numeric($base) || is_float($base) === true){ exit("The argument is not a valid number.");}switch ($unit){ case 'GB': case 'GiB': $bits = $base * 1024 * 1024 * 1024 * 8; break; case 'Gb': case 'Gib': $bits = $base * 1024 * 1024 * 1024; break; case 'gB': $bits = $base * 1000 * 1000 * 1024 * 8; break; case 'gb': $bits = $base * 1000 * 1000 * 1024; break; case 'MB': case 'MiB': $bits = $base * 1024 * 1024 * 8; break; case 'Mb': case 'Mib': $bits = $base * 1024 * 1024; break; case 'mB': $bits = $base * 1000 * 1024 * 8; break; case 'mb': $bits = $base * 1000 * 1024; break; case 'KB': case 'KiB': $bits = $base * 1024 * 8; break; case 'Kb': case 'Kib': $bits = $base * 1024; break; case 'kB': $bits = $base * 1000 * 8; break; case 'kb': $bits = $base * 1000; break; case 'B': $bits = $base * 8; break; case 'b': $bits = $base; break; default: exit("Unit {$unit} is not supported.");}switch ($targetUnit){ case 'GB': case 'GiB': $resultBase = $bits / 1024 / 1024 / 1024 / 8; break; case 'Gb': case 'Gib': $resultBase = $bits / 1024 / 1024 / 1024; break; case 'gB': $resultBase = $bits / 1000 / 1000 / 1024 / 8; break; case 'gb': $resultBase = $bits / 1000 / 1000 / 1024; break; case 'MB': case 'MiB': $resultBase = $bits / 1024 / 1024 / 8; break; case 'Mb': case 'Mib': $resultBase = $bits / 1024 / 1024; break; case 'mB': $resultBase = $bits / 1000 / 1024 / 8; break; case 'mb': $resultBase = $bits / 1000 / 1024; break; case 'KB': case 'KiB': $resultBase = $bits / 1024 / 8; break; case 'Kb': case 'Kib': $resultBase = $bits / 1024; break; case 'kB': $resultBase = $bits / 1000 / 8; break; case 'kb': $resultBase = $bits / 1000; break; case 'B': $resultBase = $bits / 8; break; case 'b': $resultBase = $bits; break; default: exit("Unit {$targetUnit} is not supported.");}//$resultBase = number_format($resultBase, 0, '', '');echo "{$resultBase}{$targetUnit}";
Output for 5.4.0 - 5.4.32, 7.2.29 - 7.2.33, 7.3.16 - 7.3.31, 7.4.3 - 7.4.32, 8.0.0 - 8.0.12, 8.0.14 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
<?phpif ( ! isset($argv[1]) || ! isset($argv[2])){ exit("An argument was expected.");}$base = substr($argv[1], 0, -1);$unit = substr($argv[1], strlen($argv[1])-1, 1);if ( ! is_numeric($argv[1][strlen($argv[1])-2])){ $base = substr($argv[1], 0, -2); $unit = substr($argv[1], strlen($argv[1])-2, 2);}if ( strlen($argv[1]) >= 3 && ! is_numeric($argv[1][strlen($argv[1])-3])){ $base = substr($argv[1], 0, -3); $unit = substr($argv[1], strlen($argv[1])-3, 3);}$targetUnit = $argv[2];if ( ! is_numeric($base) || is_float($base) === true){ exit("The argument is not a valid number.");}switch ($unit){ case 'GB': case 'GiB': $bits = $base * 1024 * 1024 * 1024 * 8; break; case 'Gb': case 'Gib': $bits = $base * 1024 * 1024 * 1024; break; case 'gB': $bits = $base * 1000 * 1000 * 1024 * 8; break; case 'gb': $bits = $base * 1000 * 1000 * 1024; break; case 'MB': case 'MiB': $bits = $base * 1024 * 1024 * 8; break; case 'Mb': case 'Mib': $bits = $base * 1024 * 1024; break; case 'mB': $bits = $base * 1000 * 1024 * 8; break; case 'mb': $bits = $base * 1000 * 1024; break; case 'KB': case 'KiB': $bits = $base * 1024 * 8; break; case 'Kb': case 'Kib': $bits = $base * 1024; break; case 'kB': $bits = $base * 1000 * 8; break; case 'kb': $bits = $base * 1000; break; case 'B': $bits = $base * 8; break; case 'b': $bits = $base; break; default: exit("Unit {$unit} is not supported.");}switch ($targetUnit){ case 'GB': case 'GiB': $resultBase = $bits / 1024 / 1024 / 1024 / 8; break; case 'Gb': case 'Gib': $resultBase = $bits / 1024 / 1024 / 1024; break; case 'gB': $resultBase = $bits / 1000 / 1000 / 1024 / 8; break; case 'gb': $resultBase = $bits / 1000 / 1000 / 1024; break; case 'MB': case 'MiB': $resultBase = $bits / 1024 / 1024 / 8; break; case 'Mb': case 'Mib': $resultBase = $bits / 1024 / 1024; break; case 'mB': $resultBase = $bits / 1000 / 1024 / 8; break; case 'mb': $resultBase = $bits / 1000 / 1024; break; case 'KB': case 'KiB': $resultBase = $bits / 1024 / 8; break; case 'Kb': case 'Kib': $resultBase = $bits / 1024; break; case 'kB': $resultBase = $bits / 1000 / 8; break; case 'kb': $resultBase = $bits / 1000; break; case 'B': $resultBase = $bits / 8; break; case 'b': $resultBase = $bits; break; default: exit("Unit {$targetUnit} is not supported.");}//$resultBase = number_format($resultBase, 0, '', '');echo "{$resultBase}{$targetUnit}";
Output for 8.0.13
Parse error: syntax error, unexpected token ";" in /in/fAlGM on line 1
Process exited with code 255.
Output for 7.3.32 - 7.3.33, 7.4.33
Parse error: syntax error, unexpected ';' in /in/fAlGM on line 1
Process exited with code 255.
Output for 5.4.34
Parse error: syntax error, unexpected '{' in /in/fAlGM on line 1
Process exited with code 255.

preferences:
157.67 ms | 401 KiB | 169 Q