PHP OOP에서의 프라이빗 메소드
프로퍼티뿐만 아니라 메소드도 프라이빗으로 만들 수 있습니다. 일반적으로 보조 메소드를 프라이빗으로 만들어 외부에서 실수로 호출되는 것을 방지합니다.
예제를 살펴보겠습니다. 다음과 같은 클래스가 있다고 가정해 봅시다:
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function show() {
return $this->name;
}
}
?>
이 클래스에 문자열을 매개변수로 받아 첫 글자를 대문자로 바꾸는 프라이빗 메소드를 만들어 보겠습니다:
<?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
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
$user = new User('john');
?>
보조 메소드를 사용하는 퍼블릭 메소드를 호출합니다:
<?php
echo $user->show();
?>
다음 코드에서 보조 메소드를 프라이빗으로 만드세요:
<?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 . '₽';
}
}
?>