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.