Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- mb_internal_encoding('utf-8');
- $input='243+6743-78*2=';
- $inputLength=strlen($input);
- $number=0;
- $result=0;
- $op='+';
- function doMath($op,$result,$number) {
- return $op==='+'?$result+$number:($op==='-'?$result-$number:$result*$number);
- }
- for ($i=0;$i<$inputLength;$i++) {
- $char=mb_substr($input,$i,1);
- //validation and coercion step
- if (is_numeric($char)) {
- $char=intval($char);
- }
- elseif (!is_numeric($char)&&!in_array($char,['-','+','=','*'])) {
- echo "Enter correct value!"; exit();
- }
- //math
- if ($char=='+'||$char=='-'||$char=='*'||$char=='=') {
- $result=doMath($op,$result,$number);
- $number=0;
- $op=$char;
- } else {
- $number=$number*10+$char;
- }
- //when equation sign reached
- if ($op=='=') {
- echo "". $result;
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement