პრივატული მეთოდები OOP-ში PHP-ში

პრივატული შეიძლება იყოს არა მხოლოდ თვისებები, არამედ მეთოდებიც. ჩვეულებრივ პრივატულს ხდიან დამხმარე მეთოდებს, რათა ისინი შემთხვევით ვერ გამოიძახონ კლასის გარედან.

მოდით შევხედოთ მაგალითს. დავუშვათ, გვაქვს შემდეგი კლასი:

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

გავხადოთ ამ კლასში პრივატული მეთოდი, რომელიც პარამეტრად მიიღებს სტრიქონს და გახსნის დიდ ასოს მის პირველ სიმბოლოს:

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);
    }
  }
?>

გამოვიყენოთ ჩვენი დამხმარე მეთოდი სხვა მეთოდის შიგნით:

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);
    }
  }
?>

მოდით შევამოწმოთ. შევქმნათ ჩვენი კლასის ობიექტი:

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

გამოვიძახოთ საჯარო მეთოდი, რომელიც იყენებს დამხმარეს:

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

შემდეგ კოდში გახადეთ დამხმარე მეთოდი პრივატული:

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 . '
;
    }
  }
?>