Ответы пользователя по тегу Массивы
  • Как ставить между двумя массивами неизвестный математический знак?

    @smple
    можно это сделать с помощью eval конечно, но такой способ я не рекомендую, вот так например
    <?php
    $a = 5;
    $b = 6;
    $c = '+';
    
    echo eval("return $a $c $b;");

    Более правильно сделать интерфейс OperationInterface и для каждого действия сделать свою реализацию (например OperationPlus, OperationMinux, OperationMultiply и тд)
    Ну соответсвенно сделать выбор нужную реализацию, это по сути будет паттерн стратегия https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D...

    Как еще один вариант можно просто сделать массив функций, которые будут принимать аргументом два параметра и делать операцию вот так:
    <?php
    $a = 5;
    $b = 6;
    
    $operation = [];
    $operation['+'] = function ($a, $b) {
        return $a + $b;
    };
    $operation['*'] = function ($a, $b) {
        return $a * $b;
    };
    // тд на все варианты
    
    $c = '+';
    echo $operation[$c]($a, $b) . PHP_EOL;
    
    $c = '*';
    echo $operation[$c]($a, $b) . PHP_EOL;
    Ответ написан
    4 комментария