Public, Private, Protected trong PHP

left

Tiếp tục chuỗi Series về lập trình hướng đối tượng (OOP) trong PHP hôm nay chúng ta sẽ tìm hiểu về 3 phạm vi giới hạn quyền truy cập đó là Public, Private và Protected.

Sau khi đọc xong bài viết sẽ biết cách sử dụng Public, Private và Protected nhanh chóng. Đồng thời cũng áp dụng cho các dự án PHP của mình trong tương lai hiệu quả hơn.

Public trong PHP

Public là quyền truy cập mặc định mọi nơi. Có thể từ lớp đó, lớp kế thừa và ngoài lớp.

Ví dụ:

<?php
class DoiTuong
{
    //khai báo thuộc tính
     public $public = 'Public';
 
    //Khai báo phương thức là pubic hoặc để trống không ghi
    function tendoituong()
    {
        echo $this->public;
    }
}
$result = new DoiTuong();
$result->tendoituong();
?>

Sau khi chạy lệnh thì tên đối tượng đã được in ra.

Protected trong PHP

Protected được truy cập trong lớp và lớp kế thừa class. Không truy xuất được từ bên ngoài.

Ví dụ:

<?php
class TraiCay {
  protected $ten;
}

$result = new TraiCay();
$result->ten = 'Quả Táo';
?>

Sau khi chạy đã xuất hiện một thông báo lỗi. Như vậy là Protected không cho phép truy cấp ở bên ngoài dấu 2 ngoặc của Class {…}.

Private trong PHP

Private quyền truy cập hẹp nhất. Nó chỉ cho phép truy cập ở trong lớp đó. Không truy xuất được từ bên ngoài và lớp kế thừa.

Ví dụ:

<?php
class TraiCay {
  public $ten;
  public $mau;
  public $khoiluong;

  function lay_ten($n) { 
    echo $this->ten = $n;

  }
  protected function lay_mau($n) { 
    echo $this->mau = $n;
  }
  private function lay_khoiluong($n) {
    echo $this->khoiluong = $n;
  }
}

$quaxoai = new TraiCay();
$quaxoai->lay_ten('Quả Xoài'); // OK
$quaxoai->lay_mau('vàng'); // Lỗi
$quaxoai->lay_khoiluong('300'); // Lỗi
?>

Khi chạy lệnh sẽ xuất hiện các lỗi. Để kiểm tra bạn hãy thay thế protected và private thành public xem kết quả như thế nào nhé.

Với ví dụ này bạn sẽ so sánh được 3 kiểu giới hạn truy cập. Khi am hiểu bạn sẽ sử dụng thành thạo hơn và giúp bảo mật hệ thống tốt hơn khi viết code.

Cùng chủ đề

Chuyên mục:
Tag:

Bình luận!

Xin lưu ý rằng tất cả các bình luận đều được kiểm duyệt theo chính sách bảo mật và tất cả các liên kết đều là nofollow. KHÔNG sử dụng từ khóa trong trường tên. Hãy để lại một cuộc trò chuyện cá nhân và ý nghĩa. *