Advertisement
sanjiisan

Untitled

Apr 10th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. <?php
  2.  
  3. class Calculator //Tworzymy definicję klasy Calculator
  4. {
  5. private $history; //Prywatny atrybut 'historia operacji'
  6.  
  7. public function __construct() //Konstruktor - funkcja która wykonuję się podczas tworzenia obiektu klasy
  8. {
  9. $this->history = []; //Przypisujemy na start postą tablicę do histori
  10. }
  11.  
  12. public function add($num1, $num2) //Funkcja dodaje elementy i zwraca wartość
  13. {
  14. return $this->saveToMemory('Added', $num1, $num2, $num1 + $num2);
  15. }
  16.  
  17. public function multiply($num1, $num2) //Funkcja mnoży elementy i zwraca wartość
  18. {
  19. return $this->saveToMemory('Multiplied', $num1, $num2, $num1 * $num2);
  20. }
  21.  
  22. public function subtract($num1, $num2) //Funkcja odejmuje elementy i zwraca wartość
  23. {
  24. return $this->saveToMemory('Substracted', $num1, $num2, $num1 - $num2);
  25. }
  26.  
  27. public function divide($num1, $num2) //Funkcja dzieli elementy i zwraca wartość
  28. {
  29. if ($num2 == 0) {
  30. return false;
  31. }
  32.  
  33. return $this->saveToMemory('Divided', $num1, $num2, $num1 / $num2);
  34. }
  35.  
  36. private function saveToMemory($operation, $num1, $num2, $result) //Metoda ma za zadanie stworzyć stringa który reprezentuje jedną operację wykonaną przedtem i zwraca jej wynik.
  37. {
  38. $string = "$operation $num1 to $num2 got $result"; //Słowna reprezentacja wykonania operacji
  39. $this->history[] = $string; //Dodajemy jedną operację do histori
  40.  
  41. return $result; //Zwracamy wynik
  42. }
  43.  
  44. public function printOperations() //Pokazuje operacje z histori
  45. {
  46. for ($i = 0; $i < count($this->history); $i++) {
  47. echo "Operacja " . ($i + 1) . ': ' . $this->history[$i] . "<br>"; //Wyświetla komunikat
  48. }
  49. }
  50.  
  51. public function clearOperations() //Czyści historię operacji
  52. {
  53. $this->history = [];
  54. }
  55. }
  56.  
  57. $calc1 = new Calculator(); //Tworzymy obiekt klasy Kalkulator
  58.  
  59. $calc1->add(1, 4); //Wykonujemy metody na obiekcie
  60. $calc1->divide(8, 2); //Wykonujemy metody na obiekcie
  61. $calc1->multiply(4, 2); //Wykonujemy metody na obiekcie
  62.  
  63. $calc1->printOperations(); //Pokazujemy hostorię operacji
  64.  
  65. $calc1->clearOperations();//Czyscimy historię
  66.  
  67. echo 'Operacje po kasacji';
  68. $calc1->printOperations();//Pokazujemy hostorię operacji - pusto bo ją chwilę temu wyczyściliśmy
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement