public function run() { $result = $this->firstOperand->run(); foreach ($this->otherOperands as $otherOperand) { $operator = $otherOperand['operator']; $command = $otherOperand['command']; switch ($operator) { case self::ADD_OPERATOR: $result = $result + $command->run(); break; case self::MULTIPLY_OPERATOR: $result = $result * $command->run(); break; case self::SUBTRACT_OPERATOR: $result = $result - $command->run(); break; case self::DIVIDE_OPERATOR: $result = $result / $command->run(); break; } } return $result; }