Các chỉ định truy cập (access modifier) trong PHP

Đây là bài 32/53 bài của series môn học Lập trình Web PHP

Trong bài này, chúng ta sẽ tìm hiểu về cách sử dụng access modifier trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.

Những thuộc tính (properties) và phương thức (methods) của lớp (class) có thể có access modifiers để xác định phạm vi mà chúng được truy cập. Có 3 access modifiers trong PHP là public, protected, private.

– Những thuộc tính và phương thức có chỉ định truy cập là public thì sẽ được truy cập ở bất cứ đâu trong chương trình. Chỉ định truy cập public là mặc định.

– Những thuộc tính và phương thức có chỉ định truy cập là protected thì chỉ được truy cập bên trong lớp (class) chứa nó và lớp dẫn xuất (derived class) của lớp đó.

– Những thuộc tính và phương thức có chỉ định truy cập là private thì chỉ được truy cập bên trong lớp (class) chứa nó.

1. Ví dụ các thuộc tính public, protected, private trong class

<?php
class Cat {
    public $name;
    protected $color;
    private $weight;
}
$tom = new Cat();
$tom->name = 'Tom'; // OK
$tom->color = 'grey and white'; // ERROR
$tom->weight = '3.5'; // ERROR
?>

2. Ví dụ các phương thức public, protected, private trong class

<?php
class Cat {
    public $name;
    public $color;
    public $weight;
    // a public function (default)
    function set_name($name) {
        $this->name = $name;
    }
    // a protected function
    protected function set_color($color) {
        $this->color = $color;
    }
     // a private function
    private function set_weight($weight) {
        $this->weight = $weight;
    }
}
$tom = new Cat();
$tom->set_name('Tome'); // OK
$tom->set_color('grey and white'); // ERROR
$tom->set_weight('3.5'); // ERROR
?>

3. Ví dụ thuộc tính protected trong lớp dẫn xuất

<?php
class Cat {
    public $name;
    public $color;
    protected $weight;
    public function __construct($name, $color, $weight) {
        $this->name = $name;
        $this->color = $color;
        $this->weight = $weight;
    }
}
class Kitty extends Cat {
    public function message() {
        echo "Hello, my name is " . $this->name . ", has " . $this->color . " color";
        // using protected $weight in derived class
        echo "<br> And my weight is " . $this->weight . " kilograms";
    }
  }
$kitty = new Kitty("Kitty", "pink and white", "3.5");
$kitty->message();
?>

Trong ví dụ trên, thuộc tính $weight có chỉ định truy cập là protected và có thể sử dụng trong lớp dẫn xuất. Tương tự, các phương thức có chỉ định truy cập là protected cũng có thể sử dụng trong lớp dẫn xuất.

5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Hàm khởi tạo (constructor) và hàm hủy (destructor) của class trong PHPTính kế thừa (inheritance) trong PHP >>
Chia sẻ trên mạng xã hội:

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.