Ошибка php eval () после обновления

Я не могу найти ошибку здесь, этот код раньше работал, я обновил 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.");");
}

Любая помощь приветствуется

0

Решение

Вы объединяете строку с числом в eval. Упаковка $operande1 внутри strval($operande1) должен решить это. Я вообще не рекомендую использовать eval, но, похоже, что другой вариант — просто иметь числа в виде строк, инициализируя их в кавычках, т.е. $operande1 = "10";

eval('$result=('.strval($operande1).")".$operation."(".strval($operande2).");");

Заметка что eval просто устанавливает значение переменной $resultи ты будешь делать echo $result; распечатать его значение.

1

Другие решения

Единственный способ, которым я смог воспроизвести ошибку, которую вы опубликовали

Ошибка разбора: синтаксическая ошибка, неожиданное ’10’ (T_LNUMBER)

должен был оставить = знак.

$operande1  10;

который дал мне

Ошибка разбора: синтаксическая ошибка, неожиданное ’10’ (T_LNUMBER)


http://3v4l.org/o1vDg

Выход для 5.4.0 — 5.6.2, php7 @ 20140507 — 20141001
Ошибка разбора: синтаксическая ошибка, неожиданное ’10’ (T_LNUMBER) в / in / o1vDg в строке 3

0

По вопросам рекламы [email protected]