Как провести математическую операция, формула как строка

Тема в разделе "PHP", создана пользователем ocheretko, 30 июн 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. ocheretko

    ocheretko Постоялец

    Регистр.:
    28 фев 2009
    Сообщения:
    112
    Симпатии:
    50
    Здравствуйте, есть код:
    Код:
    $op = "58995 + 1*47";
    echo $op;
    как подсчитать результат, а не вывести содержимое этой строки на экран? Я понимаю, что если опустить кавычки, или использовать одинарные - все будет ок. Но у меня данные именно в таком формате.
    Заранее благодарен
     
  2. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    Если только через eval:
    PHP:
    eval("\$op = 58995 + 1*47;");
    echo 
    $op;
     
    ocheretko нравится это.
  3. ocheretko

    ocheretko Постоялец

    Регистр.:
    28 фев 2009
    Сообщения:
    112
    Симпатии:
    50
    Кривовато, но функционально. А-то я уже как только не извращался))
     
  4. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    а что в этом кривого вы заметили? это единственная возможность в пхп вычислить содержимое строки.
     
  5. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    364
    Симпатии:
    117
    вот еще как вариант
    http://habrahabr.ru/blogs/php/55012/
    так и можно будет проверить корректность введенных данных
    но такое будет работать естественно немного дольше
     
  6. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    тут человек ОДНУ строчку кода считает кривым подходом, а ты ему целый класс выкатываешь :D
     
  7. ocheretko

    ocheretko Постоялец

    Регистр.:
    28 фев 2009
    Сообщения:
    112
    Симпатии:
    50
    Да все, проблема уже решена давно :)
     
  8. saidovab

    saidovab Писатель

    Регистр.:
    8 июн 2006
    Сообщения:
    7
    Симпатии:
    0
    eval("\$op = 58995 + 1*47;");
    echo
    $op;

    Думаю лучший вариант
     
Статус темы:
Закрыта.