Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class Calculator //Tworzymy definicję klasy Calculator
- {
- private $history; //Prywatny atrybut 'historia operacji'
- public function __construct() //Konstruktor - funkcja która wykonuję się podczas tworzenia obiektu klasy
- {
- $this->history = []; //Przypisujemy na start postą tablicę do histori
- }
- public function add($num1, $num2) //Funkcja dodaje elementy i zwraca wartość
- {
- return $this->saveToMemory('Added', $num1, $num2, $num1 + $num2);
- }
- public function multiply($num1, $num2) //Funkcja mnoży elementy i zwraca wartość
- {
- return $this->saveToMemory('Multiplied', $num1, $num2, $num1 * $num2);
- }
- public function subtract($num1, $num2) //Funkcja odejmuje elementy i zwraca wartość
- {
- return $this->saveToMemory('Substracted', $num1, $num2, $num1 - $num2);
- }
- public function divide($num1, $num2) //Funkcja dzieli elementy i zwraca wartość
- {
- if ($num2 == 0) {
- return false;
- }
- return $this->saveToMemory('Divided', $num1, $num2, $num1 / $num2);
- }
- private function saveToMemory($operation, $num1, $num2, $result) //Metoda ma za zadanie stworzyć stringa który reprezentuje jedną operację wykonaną przedtem i zwraca jej wynik.
- {
- $string = "$operation $num1 to $num2 got $result"; //Słowna reprezentacja wykonania operacji
- $this->history[] = $string; //Dodajemy jedną operację do histori
- return $result; //Zwracamy wynik
- }
- public function printOperations() //Pokazuje operacje z histori
- {
- for ($i = 0; $i < count($this->history); $i++) {
- echo "Operacja " . ($i + 1) . ': ' . $this->history[$i] . "<br>"; //Wyświetla komunikat
- }
- }
- public function clearOperations() //Czyści historię operacji
- {
- $this->history = [];
- }
- }
- $calc1 = new Calculator(); //Tworzymy obiekt klasy Kalkulator
- $calc1->add(1, 4); //Wykonujemy metody na obiekcie
- $calc1->divide(8, 2); //Wykonujemy metody na obiekcie
- $calc1->multiply(4, 2); //Wykonujemy metody na obiekcie
- $calc1->printOperations(); //Pokazujemy hostorię operacji
- $calc1->clearOperations();//Czyscimy historię
- echo 'Operacje po kasacji';
- $calc1->printOperations();//Pokazujemy hostorię operacji - pusto bo ją chwilę temu wyczyściliśmy
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement