<?php
error_reporting(-1);
 class Employee
{	
	public $rank;
	public $isBoss;
 
	public function getSalary($rank, $isBoss)
	{
		
		// Если это не босс, то переменной присваевается 1 чтобы при умножение не было ошибки.
		if($isBoss == 0){
			$percent = 1;
		 } elseif ($isBoss == 1){
			 $percent = 1.5;
		 }
		 
		 
		 if ($rank == 1){	
			 return $percent;
		 } elseif($rank == 2) {
			 return $percent * 1.25;
		 } elseif($rank == 3) {
			 return $percent * 1.5;
		 }
	}
	public function getCoffeDrunk(){}
	public function __construct($rank, $isBoss)
	{
		$this->rank = $rank;
		$this->isBoss = $isBoss;
	}
}
 
 
class Department
{	
	private $workers = array(); 
	public function getTotalPaid(){}
	public function totalCofeeDrunk(){}
	public function addWorker($departament, $rank,$isBoss)
	{
		$this->workers[] = array($departament, $rank, $isBoss);		
	}
}
 
 
 
class Manager extends Employee
{
	 public function getRate()
	 { 
		return parent::getSalary($this->rank, $this->isBoss) * 500;
	 }
	 public function getCoffeDrunk(){}
}
 
 
class Marketer extends Employee
{
	public function getRate()
	{
		return parent::getSalary($this->rank, $this->isBoss) * 400;
	}
	public function getCoffeDrunk(){}
}
 
 
class Engineer extends Employee
{
	public function getRate()
	{
		return parent::getSalary($this->rank, $this->isBoss) * 200;
	}
	public function getCoffeDrunk(){}
}
 
 
class Analyst extends Employee
{
	public function getRate()
	{
		return parent::getSalary($this->rank, $this->isBoss) * 800;
	}
	public function getCoffeDrunk(){}
}

$vasya = new Manager(3,0);
echo $vasya->getRate() . "\n";

echo $vasya->getRate();