Phương thức private trong OOP trong PHP
Không chỉ có thuộc tính, mà phương thức cũng có thể là private. Thông thường, các phương thức trợ giúp được đặt là private để chúng không thể bị gọi một cách tình cờ từ bên ngoài lớp.
Hãy xem xét một ví dụ. Giả sử chúng ta có lớp sau:
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function show() {
return $this->name;
}
}
?>
Hãy tạo một phương thức private trong lớp này, phương thức này sẽ nhận một chuỗi làm tham số và viết hoa ký tự đầu tiên của nó:
<?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);
}
}
?>
Hãy sử dụng phương thức trợ giúp của chúng ta bên trong một phương thức khác:
<?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);
}
}
?>
Hãy kiểm tra. Tạo một đối tượng của lớp chúng ta:
<?php
$user = new User('john');
?>
Gọi phương thức public sử dụng phương thức trợ giúp:
<?php
echo $user->show();
?>
Trong đoạn code sau, hãy làm cho phương thức trợ giúp trở thành private:
<?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 . '₽';
}
}
?>