Share Pastebin
Guest
Public paste!

Untitled

By: a guest | Mar 21st, 2010 | Syntax: PHP | Size: 5.88 KB | Hits: 74 | Expires: Never
Copy text to clipboard
  1. <?php
  2.     //Maak de doos.
  3.     class calculator
  4.     {
  5.         //Geef aan welke variabelen je wilt gaan gebruiken, en welke rechten ze hebben.
  6.         protected $number;                                      //Het getal dat we als eerste invoeren, en ook de uitkomst zal zijn.
  7.         protected $operator;                                    //Waarmee er gerekend moet worden.
  8.         protected $number_sec;                                  //Het tweede getal dat ingevoerd wordt.
  9.         protected $operators = array('+', '*', '-', '/');       //Een array met alle toegestane operators
  10.        
  11.         /**
  12.         * Een functie, om je eerste getal op te slaan.
  13.         *
  14.         * Deze moet public zijn, want $number is protected, en niemand buiten de doos kan daar dus bij.
  15.         * En om er voor te zorgen dat wij er straks bij kunnen, moet het een public function zijn,
  16.         * zodat wij de rechten hebben om deze functie van de doos te gebruiken.
  17.         */
  18.         public function set_number($input)
  19.         {
  20.             //Even checken of het getal een getal is.
  21.             if( is_numeric($input) )
  22.             {
  23.                 /**
  24.                 * en dan met $this, $number een waarde geven. $this is dus de doos, het object zelf. $this->number zegt dus :  
  25.                 * Haal uit mij, de variabele getal op. $this is mij. mezelf, de doos.
  26.                 * We geven onze doos zijn variabele number, de waarde van $input, dus het getal dat is ingevoerd.  
  27.                 */
  28.                 $this->number = $input;
  29.             }  
  30.             else
  31.             {
  32.                 /**
  33.                 * Het was geen getal, dus moeten we een waarschuwing terug sturen.
  34.                 *
  35.                 * We gebruiken de boolean 'False' om te zeggen dat het mislukt is.
  36.                 */
  37.                 return false;
  38.             }
  39.         }
  40.        
  41.         /**
  42.         * Nu moeten we een soortgelijke functie maken, om de operator (+,-,*,/) op te slaan.
  43.         * Omdat ook deze, protected is zal de doos dat moeten doen, en word het dus een public function.
  44.         * Public betekend dat wij de functie straks kunnen gebruiken,
  45.         * omdat public betekend dat iedereen het recht heeft deze te gebruiken.
  46.         */
  47.         public function set_operator($operator)
  48.         {
  49.             /**
  50.             * We gebruiken de array, met alle operators die zijn toegestaan, en kijken dan met 'in_array()' of $operator voor komt in de array.
  51.             * Als deze erin voorkomt, is het een goede operator, anders is er iets anders ingevuld als +,-,*,/
  52.             */    
  53.             if( in_array($operator, $this->operators) )
  54.             {
  55.                 //Mooi, er is een goede operator ingevoerd. nu gaan me met $this, die waarde opslaan in onze doos.
  56.                 $this->operator = $operator;
  57.             }  
  58.            
  59.         }
  60.        
  61.         /**
  62.         * Goed! we hebben nu bijna onze som af. Nu moeten we nog ons tweede getal invoeren.
  63.         * Dit zijn exact de zelfde checks als bij getal 1.
  64.         * Het moet public zijn, zodat wij hem straks kunnen gebruiken.
  65.         * Getal twee kan zelfs nog gebruikt worden na de berekening,
  66.         * om de uitkomst te gebruiken als getal 1 voor een nieuwe berekening, en getal 2 dan weer als een tweede getal!
  67.         */
  68.         public function set_number_sec($input)
  69.         {
  70.             //Even checken of het getal een getal is.
  71.             if( is_numeric($input) )
  72.             {
  73.                 /**
  74.                 * en dan met $this, $number_sec een waarde geven. $this is dus de doos, het object zelf. $this->number_sec zegt dus :  
  75.                 * Haal uit mij, de variabele getal op. $this is mij. mezelf, de doos.
  76.                 * We geven onze doos zijn variabele number_sec, de waarde van $input, dus het getal dat is ingevoerd.  
  77.                 */
  78.                 $this->number_sec = $input;
  79.             }  
  80.             else
  81.             {
  82.                 /**
  83.                 * Het was geen getal, dus moeten we een waarschuwing terug sturen.
  84.                 *
  85.                 * We gebruiken de boolean 'False' om te zeggen dat het mislukt is.
  86.                 */
  87.                 return false;
  88.             }    
  89.         }
  90.        
  91.         /**
  92.         * Nu dat uit de weg is, moeten we rekenen!
  93.         * We gaan kijken met wat we moeten rekenen, en de output stoppen we in $number.
  94.         * Want zo werkt een rekenmachine ook, die vervangt zijn getal door de uitkomst.
  95.         */
  96.         public function calculate()
  97.         {
  98.             //De switch, die ken je nog wel!
  99.             switch($this->operator)
  100.             {
  101.                 case '+' : //Is het plus?
  102.                     $outcome = $this->number + $this->number_sec;
  103.                     break;
  104.                 case '-': //Is het min?
  105.                     $outcome = $this->number - $this->number_sec;
  106.                     break;
  107.                 case '*': //Is het keer?
  108.                     $outcome = $this->number * $this->number_sec;
  109.                     break;
  110.                 case '/': //Is het delen door?
  111.                     $outcome = $this->number / $this->number_sec;
  112.                     break;
  113.             }
  114.            
  115.             //Alles is goed gegaan, we zetten het getal in $number, omdat dit tevens ons nieuwe eerste getal word.
  116.             $this->number = $outcome;        
  117.         }
  118.        
  119.         /**
  120.         * poeh, bijna klaar. Nu wil je ook nog zien wat de uitkomst is natuurlijk!
  121.         * Deze word gevraagd van de doos, dus die moeten we netjes afgeven, het is niet voor niets ee npublic function!
  122.         */
  123.         public function get_outcome()
  124.         {
  125.             /**
  126.             * Simpelweg een return, we hoeven er niks meer mee te doen.
  127.             * En gezien getal 1 ook de uitkomst is, returnen we die.
  128.             */
  129.             return $this->number;
  130.         }                    
  131.     }    
  132. ?>