3v4l.org

run code in 300+ PHP versions simultaneously
<?php $equation = '1-1'; $stored = $equation; $components = preg_split('~([*/%+-])~', $stored, NULL, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); while (($index = array_search('*', $components)) !== false) { array_splice($components, $index - 1, 3, $components[$index - 1] * $components[$index + 1]); } while (($index = array_search('/', $components)) !== false) { array_splice($components, $index - 1, 3, $components[$index - 1] / $components[$index + 1]); } while (($index = array_search('%', $components)) !== false) { array_splice($components, $index - 1, 3, fmod($components[$index - 1], $components[$index + 1])); } while (($index = array_search('+', $components)) !== false) { array_splice($components, $index - 1, 3, $components[$index - 1] + $components[$index + 1]); } $count = 0; var_dump($components); while (($index = array_search('-', $components)) !== false) { echo "First\n"; var_dump($components); array_splice($components, $index - 1, 3, $components[$index - 1] - $components[$index + 1]); echo "Second\n"; var_dump($components); $count++; if($count > 3) die('Too many'); } echo current($components);

preferences:
25.04 ms | 409 KiB | 5 Q