Вопрос по математике в PHP

Статус
В этой теме нельзя размещать новые ответы.

monz

Создатель
Регистрация
24 Авг 2009
Сообщения
37
Реакции
0
Столкнулся с такой небольшой проблемкой на PHPшке
Получаю строку в виде выражения $a = '4335 + (12 * 43)';
Как сделать чтобы посчитало результат? Пробовал преобразовать строку в число при помощи intval, но не помагает, берет только первое число, а выражение не считает.
Как это можно организовать самым простым и правильным способом? Думал разбить на массив и считывать символы методом сравнения)) но думаю есть чтото правильное в данной ситуации.
 
Столкнулся с такой небольшой проблемкой на PHPшке
Получаю строку в виде выражения $a = '4335 + (12 * 43)';
Как сделать чтобы посчитало результат? Пробовал преобразовать строку в число при помощи intval, но не помагает, берет только первое число, а выражение не считает.
Как это можно организовать самым простым и правильным способом? Думал разбить на массив и считывать символы методом сравнения)) но думаю есть чтото правильное в данной ситуации.
A зачем кавычки?
Вот так тебе все просчитает
PHP:
$a = 4335 + (12 * 43);
 
Это я просто изобразил что это строка, также я выдераю эту формулу из файла и она получаеться в строчном типе, а нужно это посчитать.

Добавлено через 2 минуты
*** скрытое содержание ***
Спасибо, конечно, но это более полезно для общего развития, а здесь нужен конкретный подход на PHP
 
чего-то все мудрено как-то...
если в формуле только числа, то вот так отлично работает =)
PHP:
$a = "4335 + (12 * 43)";
echo eval("return (".$a.");");
 
если в формуле только числа, то вот так отлично работает

угу, только если там будет еще что-то, то совсем не правильно это
если брать из текстового файла и не быть уверенным в надежности кода в строке (а евал именно это и подразумевает), то лучше этот вариант не использовать

а если такой "текстовый файл" создавать изначально, с верными пхп выражениями, то наоборот - даже предпочтительней
 
Непонятно какой конечный результат вы хотите получить?
Сравните:
PHP:
echo  '4335 + (12 * 43)'.'<br/>';
echo  "4335 + (12 * 43)".'<br/>';
echo   4335 + (12 * 43).'<br/>';
 
  • Заблокирован
  • #10
всегда разбирал такое через eval
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху