    <?php
    
    class Worker {
    	// An array with workers
	    protected $workers = array(
	    	'engineer' => array(
	    		'salary' => 100
	    	),
	    	
	    	'marketer' => array(
	    		'salary' => 200
	    	)
	    );
	    
	    // An array of worker params
	    protected $current_worker;
     
     	/**
     	 * Worker constructor.
     	 */
    	public function __construct( $job_title = 'marketer' )  {
    		// Check if such position exists
    		if ( array_key_exists( $job_title, $this->workers ) ) {
    			// Assign job title
    			$this->current_worker = $this->workers[$job_title];
    		} else {
    			throw new Exception( 'Passed job title does not exist!' );
    		}
    	}
    	
    	/**
    	 * Getter for worker salary
    	 */
    	public function get_worker_salary() {
    		// Check if salary key exists
    		if ( array_key_exists( 'salary', $this->current_worker ) ) {
    			return $this->current_worker['salary'];
    		} else {
    			return false;
    		}
    	}
    	/**
    	 * Setter for worker salary???
    	 * Обратите внимание сюда пожалуйста!
    	 */
    	public function setWorkerNewSalary(int $newSalary) {
    		// и как мне работать с твоим классом теперь???
    		//  Окей, разобрался, но выглядит всё равно не очень очевидно для меня :(
    		$this->current_worker['salary'] = $newSalary;
    		
    	}
    	
    }
     
    $Vasya = new Worker( 'engineer' );
    
    
    var_dump($Vasya);
    //и вижу что объект жирный и в итоге вместо сотни потенциальных классов
    // будет туча жирнючих объектов в каждом из которых хранится инфа по сути
    // предназдаченная для класса, разве классы это не шаблоны?
    // зачем хранить шаблоны в самих объектах?
    
    
    $Vasya->setWorkerNewSalary(300);
    
    var_dump($Vasya);