@apaicer

Что не так в коде?

Нужно написать функцию, в которую приходит 2 числа и оператор. и выполнить операцию между ними. Если оператор не +-*/ вывести ошибку; если одно из чисел не является числом то нулл.
$arr = ['+','-','*','/'];
$operator = $arr;

$operandOne = 6;
$operandTwo = 4;

function calculate($operandOne, $operandTwo, $operator) {
	if ($operandOne > 0){
		return null;
	}
	else if (!isset($operator)){
        return error;
	}
	else {
	$result = "$operandOne $operator[1] $operandTwo";
	}
}
 echo $result;

Я понимаю, что код не правильный, но в каком моменте? Видимо не могу уловить синтаксис.
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
Sanovskiy
@Sanovskiy
Веб-разработчик с 2005 года
Всё не так.
function calculate($operandOne, $operandTwo, $operator)
{

    if (!is_numeric($operandOne) || !is_numeric($operandTwo)) {
        return null;
    }

    switch ($operator) {
        case '+':
            return $operandOne + $operandTwo;
        case '-':
            return $operandOne - $operandTwo;
        case '/':
            if ($operandTwo <= 0) {
                return null;
            }
            return $operandOne / $operandTwo;
        case '*':
            return $operandOne * $operandTwo;
        default:
            echo 'Допускаются только операторы + - / *';
            return null;
    }
}

$operandOne = 6;
$operandTwo = 4;

echo calculate($operandOne, $operandTwo, '+');

Вот рабочий код.
Вы, похоже, не понимаете что такое функции.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы