PHP OOP에서의 프라이빗 메소드

프로퍼티뿐만 아니라 메소드도 프라이빗으로 만들 수 있습니다. 일반적으로 보조 메소드를 프라이빗으로 만들어 외부에서 실수로 호출되는 것을 방지합니다.

예제를 살펴보겠습니다. 다음과 같은 클래스가 있다고 가정해 봅시다:

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