За последние 24 часа нас посетили 18175 программистов и 1681 робот. Сейчас ищут 1063 программиста ...

Как написать изменяющийся оператор?

Тема в разделе "PHP для новичков", создана пользователем Ingremmout, 6 авг 2017.

  1. Ingremmout

    Ingremmout Активный пользователь

    С нами с:
    12 май 2010
    Сообщения:
    11
    Симпатии:
    0
    Всем привет!
    Помогите, пожалуйста, сообразить, как правильно написать функцию для калькулятора.

    PHP:
    1. public function calc($operator ) {
    2. ...
    3. $object->a= $b ... $c;
    4. $object->d= $e ... $f;
    5. ...
    6. $object->x= $y ... $z;
    7.  
    8. return $object;
    9. }

    В $operator могу передавать либо текстом '+', '-', '/', '*',
    либо цифирки 1,2,3,4
    Нужно чтобы в зависимости от подаваемого оператора происходило то или иное действие.
    Если мы будем делать через switch, то весь объём текста увеличится во столько раз, сколько у нас операторов:

    PHP:
    1. switch ($operator) {
    2. case '+':
    3. $object->a= $b + $c;
    4. $object->d= $e + $f;
    5. ...
    6. $object->x= $y + $z;
    7. break;
    8. case '-':
    9. $object->a= $b - $c;
    10. $object->d= $e - $f;
    11. ...
    12. $object->x= $y - $z;
    13. break;
    14. ...
    15. ...
    16. }
    Как это грамотнее сделать?
    Можно ли привести запись к подобному виду, чтобы он понимал, что от него хотят?
    $object->a= $b $operator $c;
     
  2. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Можно через eval()
    PHP:
    1. eval("\$object->a = $b $operator $c;");