Помогите с php кодом

12
ИН
На сайте с 03.10.2013
Offline
150
1693

Делал по уроку, но код не работает, подскажите что не так? версия php 5.5.9

function mathOperation($arg1, $arg2, $operation) {

switch($operation) {
case "+":
$res = sum($arg1, $arg2);
echo $res;
break;
case "-":
$res = sub($arg1, $arg2);
echo $res;
break;
case "*":
$res = mult($arg1, $arg2);
echo $res;
break;
case "/":
$res = div($arg1, $arg2);
echo $res;
break;
default:
echo "Некорректно введенная опция!";
}
}

mathOperation(10, 34, "+");

Так тоже не работает

function mathOperation($arg1, $arg2, $operation) {

switch($operation) {
case "+":
return sum($arg1, $arg2);
break;
case "-":
return sub($arg1, $arg2);
break;
case "*":
return mult($arg1, $arg2);
break;
case "/":
return div($arg1, $arg2);
break;
default:
echo "Некорректно введенная опция!";
}
}

mathOperation(10, 34, "+");

в итоге выдает ошибку Fatal error: Call to undefined function sum() in Z:\home\mysite\ on line 104

SONcemvo
На сайте с 06.09.2009
Offline
102
#1

Ну так функции sum() у вас нет. Вот и не работает.

а зачем вам код математических операций то?

сложений это 2+2, вычитание 2-2, зачем эта ересь в виде вашего кода?

owx
На сайте с 27.06.2009
Offline
100
owx
#2

Вы используете пользовательскую функцию sum, которая не объявлена (в прочем, как и все функции находящееся внутри оператора switch). Вариантов решения проблемы два: либо объявить эти функции, либо же их не использовать

ИН
На сайте с 03.10.2013
Offline
150
#3
~AL~:
Вы используете пользовательскую функцию sum, которая не объявлена (в прочем, как и все функции находящееся внутри оператора switch). Вариантов решения проблемы два: либо объявить эти функции, либо же их не использовать

Если их не использовать и написать просто return ($arg1, $arg2); то все равно не работает!

function mathOperation($arg1, $arg2, $operation) {


switch($operation) {
case "+":
return ($arg1, $arg2);
break;
case "-":
return ($arg1, $arg2);
break;
case "*":
return ($arg1, $arg2);
break;
case "/":
return ($arg1, $arg2);
break;
default:
echo "Некорректно введенная опция!";
}
}

mathOperation(10, 34, "+");

Parse error: syntax error, unexpected ',' in Z:\home\mysite\ on line 105

а зачем вам код математических операций то?

Чтобы понять как это работает, я ведь только учусь php программированию.

V
На сайте с 22.09.2006
Offline
103
#4

как-то так:

function mathOperation($arg1, $arg2, $operation) {

switch($operation) {

case "+":

return $arg1+$arg2;

break;

case "-":

return $arg1-$arg2;

break;

case "*":

return $arg1*$arg2;

break;

case "/":

return $arg1/$arg2;

break;

default:

echo "Некорректно введенная опция!";

}

}

mathOperation(10, 34, "+");

если не работает, то

return ($arg1+$arg2);

похожие строки соответственно

если и это не работает то:

$return=$arg1+$arg2;

и в конце уже:

return $return;

.
owx
На сайте с 27.06.2009
Offline
100
owx
#5
Иван НСК:
Если их не использовать и написать просто return ($arg1, $arg2); то все равно не работает!

И не должно работать. Используйте

return $arg1 + $arg2;
как вариант
ИН
На сайте с 03.10.2013
Offline
150
#6
~AL~:
И не должно работать. Используйте
return $arg1 + $arg2;
как вариант

Спасибо! Работает.

Странно, почему у автора курса не так😕

---------- Добавлено 29.05.2015 в 21:13 ----------

vantala:
как-то так:

function mathOperation($arg1, $arg2, $operation) {
switch($operation) {
case "+":
return $arg1+$arg2;
break;
case "-":
return $arg1-$arg2;
break;
case "*":
return $arg1*$arg2;
break;
case "/":
return $arg1/$arg2;
break;
default:
echo "Некорректно введенная опция!";
}
}

mathOperation(10, 34, "+");


если не работает, то
return ($arg1+$arg2);
похожие строки соответственно

если и это не работает то:

$return=$arg1+$arg2;
и в конце уже:
return $return;

Если написать mathOperation(10, 34, "+"); ничего не выведется, если echo mathOperation(10, 34, "+"); то все ок.

S
На сайте с 13.10.2014
Offline
171
#7
Иван НСК:
Если написать mathOperation(10, 34, "+"); ничего не выведется, если echo mathOperation(10, 34, "+"); то все ок.

не выводится, потому, что функция echo она-же print выводит данные в браузер.

если не написать эхо, то все посчитается, но выводить-то нечем, вот и не выведется

SONcemvo
На сайте с 06.09.2009
Offline
102
#8

Иван НСК

я бы на вашем месте нашел бы другой курс. Если автор курса пишет для сложения огромную функцию - то ничего хорошего из этого не выйдет

ДП
На сайте с 23.11.2009
Offline
203
#9
SONcemvo:
Иван НСК

я бы на вашем месте нашел бы другой курс. Если автор курса пишет для сложения огромную функцию - то ничего хорошего из этого не выйдет

Скорее всего автор пишет эту огромную функцию не для сложения, а для демонстрации конструкции switch-case

ИН
На сайте с 03.10.2013
Offline
150
#10
Дикий пионер:
Скорее всего автор пишет эту огромную функцию не для сложения, а для демонстрации конструкции switch-case

Это было домашнее задание

Реализуйте функцию с тремя параметрами: function mathOperation($arg1, $arg2,
$operation), где $arg1, $arg2 – значения аргументов. $operation – строка с названием
операции. В зависимости от переданного значения операции выполните одну из
арифметических операций (используйте функции из пункта 4) и верните
полученное значение (используйте switch).

Автор курса при проверке дз, исправил $res = sum($arg1, $arg2); echo $res; на return sum($arg1, $arg2); я переписал оба варианта, и ни один из них не был рабочим.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий