Я не могу найти ошибку здесь, этот код раньше работал, я обновил PHP и теперь я получаю:
Ошибка разбора: синтаксическая ошибка, неожиданный код ’10’ (T_LNUMBER) в C: \ wamp \ www \ a \ 1.php (15): eval () ‘d код в строке 1
$operande1 = 5;
$operande2 = 10;
$operation = "*";
calcul($operande1,$operande2,$operation);
function calcul($operande1, $operande2, $operation) {
echo $operande1;
echo $operande2;
echo $operation;
eval('$result=('.$operande1.")".$operation."(".$operande2.");");
}
Любая помощь приветствуется
Вы объединяете строку с числом в eval. Упаковка $operande1
внутри strval($operande1)
должен решить это. Я вообще не рекомендую использовать eval, но, похоже, что другой вариант — просто иметь числа в виде строк, инициализируя их в кавычках, т.е. $operande1 = "10";
eval('$result=('.strval($operande1).")".$operation."(".strval($operande2).");");
Заметка что eval
просто устанавливает значение переменной $result
и ты будешь делать echo $result;
распечатать его значение.
Единственный способ, которым я смог воспроизвести ошибку, которую вы опубликовали
Ошибка разбора: синтаксическая ошибка, неожиданное ’10’ (T_LNUMBER)
должен был оставить =
знак.
$operande1 10;
который дал мне
Ошибка разбора: синтаксическая ошибка, неожиданное ’10’ (T_LNUMBER)
Выход для 5.4.0 — 5.6.2, php7 @ 20140507 — 20141001
Ошибка разбора: синтаксическая ошибка, неожиданное ’10’ (T_LNUMBER) в / in / o1vDg в строке 3