Public, Private, Protected trong PHP

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.

Related Posts

Namespace trong PHP

Namespace cho phép các lớp / hàm / hằng cùng tên được sử dụng trong các ngữ cảnh khác nhau mà không có bất kỳ xung đột…

Hàm str_split() trong PHP

Bài viết này chúng ta sẽ đi tìm hiểu về hàm str_split(). Một trong những hàm thường được dùng trong PHP. Vậy cách sử dụng str_split() như…

Tạo chức năng sửa xoá thành viên bằng PHP & MySQL

Với một số trang web để quản lý thành viên (user) dễ dàng trong phần quản trị admin bạn phải khởi tạo chức năng sửa xoá thành…

Hàm str_replace trong PHP

Hàm str_replace trong PHP là gì? Hàm str_replace() trong PHP là một hàm được sử dụng để thay thế tất cả các xuất hiện của một chuỗi…

laravel8-vews-1

Views trong Laravel 8

Trong chuỗi series hướng dẫn học Laravel thì Views cũng quan trọng không kém gì so với Controller hay Model. Vậy chúng ta sẽ làm thế nào…

Validate Form trong PHP

Mặc dù trình duyệt hỗ trợ JavaScript để xác thực người dùng cho website. Tuy nhiên nếu JavaScript bị lỗi hoặc tắt đi thì công việc này…