<?php
$input = '2-2*4=';
$number = 0;
$result = 0;
$op = '';
// Находит числа любой длины, в том числе дроби или знаки арифметических операций
if (preg_match_all('/\d+\.?\d*|[\+\-\*\/\=]/', $input, $numbersAndOperations)) {
foreach ($numbersAndOperations[0] as $chars) {
if ($chars == '-' or $chars == '+' or $chars == '*' or $chars == '/' or $chars == '=') {
$op = $chars;
if (!$result) {
$result = $number;
}
$number = 0;
} else {
// Определяет переменную с десятичной дробью и задает ей тип double, остальным integer
switch ($op) {
case '-':
$result -= $number;
break;
case '+':
$result += $number;
break;
case '*':
$result *= $number;
break;
case '/':
$result /= $number;
break;
}
}
if ($op == '=') {
}
}
}
echo "Что-то пошло не так... Выражение пустое или с опечаткой, попробуйте снова.";
PD9waHAKCmVycm9yX3JlcG9ydGluZygtMSk7CgokaW5wdXQgPSAnMi0yKjQ9JzsKCiRudW1iZXIgPSAwOwokcmVzdWx0ID0gMDsKJG9wID0gJyc7CgovLyDQndCw0YXQvtC00LjRgiDRh9C40YHQu9CwINC70Y7QsdC+0Lkg0LTQu9C40L3Riywg0LIg0YLQvtC8INGH0LjRgdC70LUg0LTRgNC+0LHQuCDQuNC70Lgg0LfQvdCw0LrQuCDQsNGA0LjRhNC80LXRgtC40YfQtdGB0LrQuNGFINC+0L/QtdGA0LDRhtC40LkKaWYgKHByZWdfbWF0Y2hfYWxsKCcvXGQrXC4/XGQqfFtcK1wtXCpcL1w9XS8nLCAkaW5wdXQsICRudW1iZXJzQW5kT3BlcmF0aW9ucykpIHsKCglmb3JlYWNoICgkbnVtYmVyc0FuZE9wZXJhdGlvbnNbMF0gYXMgJGNoYXJzKSB7CgoJCWlmICgkY2hhcnMgPT0gJy0nIG9yICRjaGFycyA9PSAnKycgb3IgJGNoYXJzID09ICcqJyBvciAkY2hhcnMgPT0gJy8nIG9yICRjaGFycyA9PSAnPScpIHsKCgkJCSRvcCA9ICRjaGFyczsKCQkJaWYgKCEkcmVzdWx0KSB7CgkJCQkkcmVzdWx0ID0gJG51bWJlcjsKCQkJfQoJCQkkbnVtYmVyID0gMDsKCgkJfSBlbHNlIHsKCgkJCS8vINCe0L/RgNC10LTQtdC70Y/QtdGCINC/0LXRgNC10LzQtdC90L3Rg9GOINGBINC00LXRgdGP0YLQuNGH0L3QvtC5INC00YDQvtCx0YzRjiDQuCDQt9Cw0LTQsNC10YIg0LXQuSDRgtC40L8gZG91YmxlLCDQvtGB0YLQsNC70YzQvdGL0LwgaW50ZWdlcgoJCQkkbnVtYmVyID0gKHByZWdfbWF0Y2goJy9cZCtcLlxkKy8nLCAkY2hhcnMpKSA/IGZsb2F0dmFsKCRjaGFycykgOiBpbnR2YWwoJGNoYXJzKTsKCgkJCXN3aXRjaCAoJG9wKSB7CgkJCQljYXNlICctJzoKCQkJCQkkcmVzdWx0IC09ICRudW1iZXI7CgkJCQkJYnJlYWs7CgkJCQljYXNlICcrJzoKCQkJCQkkcmVzdWx0ICs9ICRudW1iZXI7CgkJCQkJYnJlYWs7CgkJCQljYXNlICcqJzoKCQkJCQkkcmVzdWx0ICo9ICRudW1iZXI7CgkJCQkJYnJlYWs7CgkJCQljYXNlICcvJzoKCQkJCQkkcmVzdWx0IC89ICRudW1iZXI7CgkJCQkJYnJlYWs7CgkJCX0KCgkJfQoKCQlpZiAoJG9wID09ICc9JykgewoJCQllY2hvIHJvdW5kKCRyZXN1bHQsIDIpOwoJCQlleGl0KCk7CgkJfQoKCX0KCn0KCmVjaG8gItCn0YLQvi3RgtC+INC/0L7RiNC70L4g0L3QtSDRgtCw0LouLi4g0JLRi9GA0LDQttC10L3QuNC1INC/0YPRgdGC0L7QtSDQuNC70Lgg0YEg0L7Qv9C10YfQsNGC0LrQvtC5LCDQv9C+0L/RgNC+0LHRg9C50YLQtSDRgdC90L7QstCwLiI7