Metodat Private në OOP në PHP

Jo vetëm vetitë, por edhe metodat mund të jenë private. Zakonisht metodat ndihmëse bëhen private, në mënyrë që aksidentalisht të mos mund të thirren nga jashtë klasës.

Le të shohim një shembull. Le të themi se kemi klasën e mëposhtme:

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

Le të krijojmë në këtë klasë një metodë private, e cila do të marrë si parametër një varg dhe do ta bëjë të madh shkronjën e parë të saj:

php<?php
  class User {
    private $name;
    
    public function __construct($name) {
      $this->name = $name;
    }
    
    public function show() {
      return $this->name;
    }
    
    private function cape($str) {
      return mb_strtoupper(mb_substr($str, 0, 1)) . mb_substr($str, 1);
    }
  }
?>

Le të përdorim metodën tonë ndihmëse brenda një metode tjetër:

php<?php
  class User {
    private $name;
    
    public function __construct($name) {
      $this->name = $name;
    }
    
    public function show() {
      return $this->cape($this->name);
    }
    
    private function cape($str) {
      return mb_strtoupper(mb_substr($str, 0, 1)) . mb_substr($str, 1);
    }
  }
?>

Le të testojmë. Le të krijojmë një objekt të klasës sonë:

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

Le të thërrasim metodën publike, që përdor metodën ndihmëse:

php<?php
  echo $user->show();
?>
Задание 1

Në kodin vijues, bëni metodën ndihmëse private:

php<?php
  class Employee {
    public function __construct($name, $salary) {
      $this->name = $name;
      $this->salary = $salary;
    }
    
    public function getSalary() {
      return $this->addSign($this->salary);
    }
    
    public function addSign($num) {
      return $num . '
;
    }
  }
?>