Jina la Mbinu Kutoka kwa Tofauti katika OOP kwenye PHP

Kwa mlinganisho na majina ya sifa katika tofauti vilevile unaweza kuhifadhi majina ya mbinu. Hebu tuangalie kwa mfano. Hebu tuchukulie tumepewa darasa hili User lenye getta za sifa:

php<?php
  class User
  {
    private $name;
    private $surn;
    
    public function __construct($name, $surn)
    {
      $this->name = $name;
      $this->surn = $surn;
    }
    
    public function getName()
    {
      return $this->name;
    }
    
    public function getSurn()
    {
      return $this->surn;
    }
  }
?>

Tutengeneze kitu cha darasa hili:

php<?php
  $user = new User('john', 'smit');
?>

Hebu tuchukulie katika tofauti imehifadhiwa jina la mbinu:

php<?php
  $method = 'getName';
?>

Hebu tuite mbinu kwa jina kutoka kwa tofauti:

php<?php
  echo $user->$method(); // itatoa 'john'
?>
Задание 1

Amepewa darasa lifuatalo:

php<?php
  class Employee
  {
    private $name;
    private $salary;
    private $position;
    
    public function __construct($name, $salary, $position)
    {
      $this->name = $name;
      $this->salary = $salary;
      $this->position = $position;
    }
    
    public function getName()
    {
      return $this->name;
    }
    
    public function getSalary()
    {
      return $this->salary;
    }
    
    public function getPosition()
    {
      return $this->position;
    }
  }
?>

Amepewa safu:

php<?php
  $methods = [
    'method1' => 'getName',
    'method2' => 'getSalary',
    'method3' => 'getPosition',
  ];
?>

Tengeneza kitu cha darasa Employee, kisha ufikie sifa zake kupitia vipengele vya safu.