} function div() { $this->result = $this->fristnumb / $this->nextnumb; echo $this->result; } } $num1 = $_POST['num1']; $num2 = $_POST['num2']; $char = $_POST['char']; switch ($char) { case '+': $add = new Calculator($num1, $num2); $add->add(); break; case '-': $sub = new Calculator($num1, $num2); $sub->sub(); break; case '*': $mul = new Calculator($num1, $num2); $mul->mul(); break; case '/': $div = new Calculator($num1, $num2); $div->div(); break; default: echo "输入有误"; break; }
<form method="post"> <input type="number" name="number1"> <input type="text" name="operator"> <input type="number" name="number2"> <input type="submit" name="calculator" value="Calculate"> </form> <?php $calculator1 = new Calculator(); if (isset($_POST['calculator'])) { $number1 = $_POST['number1']; $number2 = $_POST['number2']; $operator = $_POST["operator"]; if ($operator == "+") { $calculator1->add($number1, $number2); echo $calculator1->getResult(); } elseif ($operator == "-") { $calculator1->sub($number1, $number2); echo $calculator1->getResult(); } elseif ($operator == "/") { $calculator1->div($number1, $number2); echo $calculator1->getResult(); } elseif ($operator == "*") { $calculator1->mul($number1, $number2); echo $calculator1->getResult(); } else { echo "Invalid operator"; } } ?> </body> </html>
public function div($value) { return $this->answer /= (double) $value; } public function clear() { $this->answer = 0; } public function eq() { return $this->answer; } } // Spl auto loader require 'SplClassLoader.php'; $loader = new SplClassLoader(null, implode(DIRECTORY_SEPARATOR, array(__DIR__, '..', 'src'))); $loader->register(); // Calculator $calc = new Calculator(); $calc->add(15); // answer = 15 $calc->mul(3); // answer = 45 $calc->div(9); // answer = 5 echo $calc->eq(); // prints 5 echo "\n"; // Implement calculator chain $chain = new \Chainnn\Chain($calc, array('add', 'sub', 'mul', 'div', '^clear', '$eq')); echo $chain->clear()->add(100)->div(5)->sub(10)->mul(3)->eq();
<?php require_once 'calc.php'; describe('calculator', function () { $calc; beforeEach(function () use(&$calc) { $calc = new Calculator(); }); describe('adds', function () use(&$calc) { it('positive numbers', function () use(&$calc) { expect($calc->add(1, 2))->toBe(3); }); it('negative numbers', function () use(&$calc) { expect($calc->add(-4, -5))->toBe(-9); }); it('with zero', function () use(&$calc) { expect($calc->add(0, 10))->toBe(10); }); }); describe('divides', function () use(&$calc) { it('positive numbers', function () use(&$calc) { expect($calc->div(8, 2))->toBe(4); }); it('throws on division by zero', function () use(&$calc) { expect(function () use(&$calc) { $calc->div(1, 0); })->toThrow(); }); }); });