Cronut

Created Tuesday 07 April 2020

<?php


class subject {

/* Put all properties here */	
	protected $firstname;
	protected $lastname;
	protected $age;
	protected $income;
	
/* Let's do setters for everything; this is the input side of things, 
 * and we know we're going to use input. It would be equally acceptable
 * to put the properties near their functions as well */	
	
	public function setFirstname($firstname) {
		$this.firstname = $firstname;
	}
	
	 
	public function setLastname($lastname) {
		$this->lastname = $lastname;
	}
	
	
	public function setAge($age) {
		$this->age = $age;
	}
	
	public function setIncome($income) {
		$this->income = $income;
	}

	

/* Getters, and "getter-like" things for output here. We don't want to
 * be making all our business public, so not everything will get 
 * a plain getter */
 
/* this is okay as a getter */

	public function getFirstname() {
            return $this->firstname;
	}
		
	public function getLastname() {
            return $this->lastname;
        }
        
        public function getAge() {
            return $this->age;
        }
        
        public function getIncome() {
            return $this->income;
        }
        
        
/* Modified getter here -- let's NEVER let the user see the last name without the DR attached. */
	public function getSpecialLastname() {
		$drblank = "Dr. " . $this->lastname;
		return $drblank; 
	}
	
        
        
/* AGE GOES IN, COLOR COMES OUT. NO exceptions. No returning the age 
 * Note, even these cascading ifs are a bit sloppy. Two things
 * one could do to make this better is to use better "between" syntax,
 * as well as introduce some error checking. */
  	
	public function agetocolor() {

		$theage = $this->age;

		if($theage <= 20) {
			$color = "Blue";
			}   
		else if ($theage <= 40) {
			$color = "Red";
			}			
		else if ($theage <= 60) {
			$color = "Green";
			}
		else  {$color="Yellow";}  /* no upper bound to age?*/ 
	   
		return $color;
        }

/* ditto on income and food - compact style */
		public function incometofood() {
	
				$theincome = $this->income; 
			
				if ($theincome <= 10000) {$food="Biscuit";}
				else if ($theincome <= 50000) {$food="Muffin";}
				else if ($theincome <= 150000) {$food="Toast";}
				else {$food="Cronut";} /* ditto on upper bound to income? */	
				
				return $food;
			   
        }
}