Помогите найти ошибку в коде, денвер говорит что ошибка на 12 строчке Parse error: syntax error, unexpected '{' in Z:\home\test1.ru\www\index.php on line 12 Код (Text): <?php error_reporting(-1); header ('content-Type: text/html; charset=utf-8'); function cal($x, $y, $act) { if ( $act == 'плюс') { return $x+$y; } elseif ($act == 'минус') { return $x-$y; } elseif ($act == 'умножить') { return $x*$y; } else ($act == 'делить') { return $x/$y; } } echo cal(5, 5, 'плюс'); ?>
Ещё один с говорящим Denwer-ом... В последней строчке вместо elseif else написали. Denwer вам ничего не говорит, говорит php. Denwer - это пакет для быстрого разворачивания сервера на локальной машине
Раз пошла такая пьянка, то elseif - треш и вообще не нужно так делать. А еще у тебя нет обработки непредвиденных действий. Передай в $act у тебя что-то типа "пиу пиу" и все. Функция вообще ничего не вернет. Вот, теперь так кури: Код (PHP): <?php error_reporting(-1); header ('content-Type: text/html; charset=utf-8'); function cal($x, $y, $act) { switch ($act){ case 'плюс': return $x+$y; case 'минус': return $x-$y; case 'умножить': return $x*$y; case 'делить': return $x/$y; default: return 'Я не могу в '.$act. ':('; } } echo cal(5, 5, 'плюс'); ?> Добавлено спустя 1 минуту 41 секунду: Оно даже смотрится красивее и опрятнее. Добавлено спустя 2 минуты 24 секунды: З.Ы. Почитай, что такое switch и его особенности. Например, после каждой конструкции case должен стоять break по-хорошему, чтобы управление не передалось следующей. Но идут сразу ретурны, так что break не нужен. Опять же, так написано, чтобы было понятно, что к чему. Писал бы я "с нуля", в case_блоках я бы присваивал значение переменной $result, а потом ее отдавал одним-единственным return-ом в конце тела функции.
Fell-x27 а где break? если ты хочешь сказать что они не нужны, потому что return, так то оно так, но если автар не может в своем супер простом коде найти ошибку, то потом ему это отсутствие break дорого обойдется.