3v4l.org

run code in 300+ PHP versions simultaneously
<?php function convertNew($input) { $oldMin = 0; $oldMax = 1; $newMin = 127; $newMax = 0; return ceil(((($input- $oldMin) * ($newMax - $newMin)) / ($oldMax - $oldMin)) + $newMin); } function convertOld($input) { $range_input = range(1, 0, 1/127); $range_output = range(0, 127); foreach ($range_input as $key => $value) { if ($value <= $input) { return $range_output[$key]; } } return 127; } $start = microtime(1); foreach (range(0,1,1/1000) as $input) { convertOld($input); } echo "Old time: ".(microtime(1) - $start)."\n"; $start = microtime(1); foreach (range(0,1,1/1000) as $input) { convertNew($input); } echo "New time: ".(microtime(1) - $start)."\n"; $warnings = array(); foreach (range(0,1,1/10000) as $input) { if (convertOld($input) != convertNew($input)) $warnings[] = $input; } if (count($warnings)) { echo "Warning, value mismatches at ".implode(", ", $warnings)."\n"; } else { echo "All values passed!\n"; }

preferences:
39.61 ms | 402 KiB | 5 Q