PHP OOP - Công cụ sửa đổi quyền truy cập
PHP - Công cụ sửa đổi quyền truy cập
Các thuộc tính và phương thức có thể có các công cụ sửa đổi quyền truy cập kiểm soát nơi chúng có thể được truy cập.
Có ba công cụ sửa đổi quyền truy cập:
-
public
- thuộc tính hoặc phương thức có thể được truy cập từ mọi nơi. Đây là mặc định -
protected
- thuộc tính hoặc phương thức có thể được truy cập trong lớp và bởi các lớp dẫn xuất từ lớp đó -
private
- thuộc tính hoặc phương thức CHỈ có thể được truy cập trong lớp
Trong ví dụ sau, chúng tôi đã thêm ba công cụ sửa đổi truy cập khác nhau vào ba thuộc tính (tên, màu và trọng lượng). Ở đây, nếu bạn cố gắng đặt thuộc tính name, nó sẽ hoạt động tốt (vì thuộc tính name là công khai và có thể được truy cập từ mọi nơi). Tuy nhiên, nếu bạn cố gắng đặt thuộc tính màu sắc hoặc trọng lượng, nó sẽ dẫn đến lỗi nghiêm trọng (vì thuộc tính màu sắc và trọng lượng được bảo vệ và riêng tư):
Thí dụ
<?php
class Fruit {
public
$name;
protected $color;
private $weight;
}
$mango = new Fruit();
$mango->name = 'Mango'; // OK
$mango->color = 'Yellow'; // ERROR
$mango->weight = '300'; // ERROR
?>
Trong ví dụ tiếp theo, chúng tôi đã thêm các công cụ sửa đổi quyền truy cập vào hai hàm. Ở đây, nếu bạn cố gắng gọi hàm set_color () hoặc set_weight (), nó sẽ dẫn đến lỗi nghiêm trọng (vì hai hàm được coi là bảo vệ và riêng tư), ngay cả khi tất cả các thuộc tính là công khai:
Thí dụ
<?php
class Fruit {
public
$name;
public $color;
public $weight;
function set_name($n) {
// a public function (default)
$this->name = $n;
}
protected function set_color($n) {
// a protected function
$this->color = $n;
}
private function set_weight($n) {
// a private function
$this->weight = $n;
}
}
$mango = new Fruit();
$mango->set_name('Mango'); // OK
$mango->set_color('Yellow'); // ERROR
$mango->set_weight('300'); // ERROR
?>