Thứ Tư, 27 Tháng Mười Một 2024
Trang chủPHP & MysqlPHPClass trong PHP - Lập trình hướng đối tượng trong PHP(OOP)

Class trong PHP – Lập trình hướng đối tượng trong PHP(OOP)

Class trong PHP, cũng như các ngôn ngữ lập trình khác. PHP cũng hỗ trợ lập trình theo hướng đối tượng(OOP), OPP cho phép bạn tổ chức cấu trúc code thành các đối tượng có tính chất và phương thức riêng biệt để dễ dàng triển khai, quản lý, bào trì và phát triển mã nguồn trong tương lai.

DANH SÁCH BÀI VIẾT
Upload file trong php - Tải file từ Bộ nhớ lên server trong PHP
Session và Cookie trong PHP - Hướng dẫn Session và Cookie
Class trong PHP - Lập trình hướng đối tượng trong PHP(OOP)
Ép kiểu dữ liệu trong PHP
Các Kiểu dữ liệu trong PHP - Học lập trình PHP cơ bản

Khai báo một class trong PHP

Để khai báo một class trong PHP, bạn sử dụng từ khóa class, sau đó là tên của class. Tên của class nên được viết hoa chữ cái đầu tiên của các từ và theo quy tắc đặt tên CamelCase.

class TenClass {
    // Các thuộc tính và phương thức của class sẽ được định nghĩa ở đây.
}

Ví dụ

class ConNguoi{
    // Các thuộc tính và phương thức của class sẽ được định nghĩa ở đây.
}

class DongVat{
    // Các thuộc tính và phương thức của class sẽ được định nghĩa ở đây.
}

>>XEM THÊM: Khác nhau giữa dấu kép (” “) và dấu nháy đơn (‘ ‘) trong PHP

2. Khai báo thuộc tính (properties):

Thuộc tính là các biến được đặt bên trong class và thường dùng để lưu trữ dữ liệu liên quan đến đối tượng của class.

class NhanVien {
    public $ten;
    public $tuoi;
    public $luong;
}

Với ví dụ này ta đã khai báo 3 thuộc tính $ten, $tuoi, $luong. Cả 3 thuộc tính này đều có phạm vi truy cập là public. Tuy nhiên thông thường biến ta sẽ nên để phạm vi truy cập là private hoặc protected để dữ được bảo mật hơn(Phạm vi truy cập sẽ được tìm hiểu trong phần sau của bài viết này).

>>XEM THÊM: Hằng số trong PHP – Khái niệm, cách khai báo và sử dụng

3. Khai báo phương thức (methods):

Phương thức là các hàm được đặt bên trong class và thường dùng để thực hiện các thao tác hoặc chức năng liên quan đến đối tượng của class.

class NhanVien {
    public $ten;
    public $tuoi;
    public $luong;
    
    public function thongTinNhanVien() {
        return "Tên: " . $this->ten . ", Tuổi: " . $this->tuoi . ", Lương: " . $this->luong;
    }
}

Phương thức thongTinNhanVien có nhiệm vụ là trả về thông tin chi tiết của Nhân viên. Hàm thì thông thường sẽ để phạm vi truy cập là public, tuy nhiên với một số hàm có nhiệm vụ đặc thù nhất định cũng có thể để phạm vi là private hoặc protected.

>>XEM THÊM: Tham chiếu và Tham trị trong PHP

4. Khởi tạo đối tượng

Để tạo một đối tượng và sử dụng từ class đã được định nghĩa, sử dụng từ khóa new kèm tên lớp đã định nghĩa.

$nhanvien1 = new NhanVien();

Biến nhanvien1 được gắn với đối tượng NhanVien được khởi tạo.

Để truy cập đến thuộc tính hoặc phương thức của đối tượng, sử dụng dấu trỏ ->. Biến đối tượng trỏ đến tên biến hoặc tên phương thức.

Ví dụ.

<?php
class NhanVien {
    public $ten;
    public $tuoi;
    public $luong;
    
    public function thongTinNhanVien() {
        return "Tên: " . $this->ten . ", Tuổi: " . $this->tuoi . ", Lương: " . $this->luong;
    }
}

$nhanvien1 = new NhanVien();
$nhanvien1->ten = "Nguyen Van A"; //Gắn thuộc tính name bằng chuỗi Nguyen Van A
$nhanvien1->tuoi = 30;
$nhanvien1->luong = 5000;

echo $nhanvien1->ten; //Kết quả| Nguyen Van A
echo  $nhanvien1->thongTinNhanVien(); // Kết quả| Tên: Nguyen Van A, Tuổi: 30, Lương: 5000

Đây chỉ là ví dụ, khi áp dụng thực tế thông thường các thuộc tính sẽ để private protected, và các thuộc tính chỉ nên được thay đổi, truy cập thông qua các phương thức.

>>XEM THÊM: Biến toàn cục và biến cục bộ trong PHP

5. Phương thức contructor

constructor là một phương thức đặc biệt được gọi tự động tại thời điểm khởi tạo đối tượng(Tức là khi ta khởi tạo đối tượng bằng lệnh new, hàm contructor sẽ được thực hiện).

Trong PHP, một phương thức constructor là một phương thức đặc biệt có tên là __construct(), tên phương thức này không được thay đổi.

Ví dụ

<?php
class NhanVien {
    public $ten;
    public function __construct()
    {
         $this->ten = "Nguyen Van A";
    }
}

$nhanvien1 = new NhanVien();
echo $nhanvien1->ten; //Kết quả| Nguyen Van A

>>XEM THÊM: Tìm hiểu Hàm trong PHP – cách dùng Hàm trong PHP

6. Tính đóng gói(Encapsulation ) – Các phạm vi truy cập của thuộc tính, phương thức.

Trong phương pháp lập trình hướng đối tượng các thuộc tính và phương thức được ràng buộc về mức độ truy cập, giúp cho dữ liệu được bảo mật hơn.Cụ thể thể là ba phạm vi: privateprotectedpublic như bảng sau:

Phạm vi truy cậpÝ Nghĩa
publicKhông hạn chế. Thành phần có thuộc tính này có thể được truy cập ở bất kì vị trí nào
privateThành phần có thuộc tính này sẽ chỉ được truy cập từ bên trong lớp. Bên ngoài lớp hay trong lớp kế thừa sẽ không thể truy cập được.
protectedThành phần có thuộc tính này sẽ có thể truy cập ở trong nội bộ lớp và trong lớp kế thừa.

Ví dụ

class NhanVien {
    public $ten;
    private $tuoi;
    protected $luong;
    
    public function __construct($ten, $tuoi, $luong) {
        $this->ten = $ten;
        $this->tuoi = $tuoi;
        $this->luong = $luong;
    }
    
    public function thongTinNhanVien() {
        return "Tên: " . $this->ten . ", Tuổi: " . $this->tuoi . ", Lương: " . $this->luong;
    }
}

$nhanvien1 = new NhanVien("Nguyen Van A", 30, 5000);
echo $nhanvien1->thongTinNhanVien();

>>XEM THÊM: Sự khác nhau giữa toán tử so sánh “==” và “===”

7. Tính Kế thừa (Inheritance)

Kế thừa là một tính năng quan trọng trong OOP cho phép bạn tạo ra một class mới dựa trên một class đã tồn tại, sử dụng lại code của class cũ và mở rộng chức năng nếu cần. Để kế thừa từ một class khác, bạn sử dụng từ khóa extends.

class GiamDoc extends NhanVien {
    public function thongTinGiamDoc() {
        return "Tên Giám Đốc: " . $this->ten . ", Tuổi: " . $this->tuoi . ", Lương: " . $this->luong;
    }
}

Trong ví dụ trên, class GiamDoc kế thừa từ class NhanVien và mở rộng chức năng bằng cách thêm một phương thức thongTinGiamDoc.

>>XEM THÊM: Vòng lặp foreach trong php – Vòng lặp duyệt phần tử mảng

8. Tính Đa hình (Polymorphism):

Đa hình cho phép các đối tượng thuộc các class khác nhau có thể sử dụng cùng một phương thức hoặc tên phương thức giống nhau. Điều này giúp tạo ra mã linh hoạt và dễ dàng bảo trì.

class NhanVien {
    public function thongTin() {
        return "Thông tin nhân viên: ";
    }
}

class GiamDoc extends NhanVien {
    public function thongTin() {
        return "Thông tin giám đốc: ";
    }
}

Trong ví dụ trên, cả NhanVienGiamDoc đều có một phương thức thongTin, nhưng nội dung của phương thức này khác nhau.

>>XEM THÊM: Toán tử 3 ngôi trong lập trình PHP – Toán tử điều kiện PHP

Tổng kết

Lập trình hướng đối tượng(OOP) trong PHP là một cách mạnh mẽ để tổ chức code và tạo ra các đối tượng có tính chất và hành vi riêng biệt. OOP cung cấp một cách tiếp cận có cấu trúc hơn cho việc phát triển ứng dụng và giúp bạn dễ dàng bảo trì và mở rộng mã nguồn của mình. Hy vọng qua bài viết ngắn này giúp bạn nắm rõ và biết cách áp dụng OOP vào dự án thực tế của mình.

[XEM TẤT CẢ BÀI VIẾT CHUYÊN MỤC HƯỚNG DẪN PHP TẠI ĐÂY]

XEM THÊM
Toán tử 3 ngôi trong lập trình PHP – Toán tử điều kiện PHP
Ép kiểu dữ liệu trong PHP
Sự khác nhau giữa toán tử so sánh “==” và “===” trong PHP
Mảng (Array) trong PHP – Tìm hiểu về mảng trong lập trình PHP
MySql là gì? Tìm hiểu về hệ quản trị cơ sở dữ liệu MySql
Tìm hiểu câu lệnh IF, IF ELSE, ELSE trong PHP
Cấu Trúc Rẽ Nhánh Switch … Case trong PHP | Học PHP cơ bản
Hiểu vòng lặp for, while, do…while ngôn ngữ PHP trong 5 phút
Mã nguồn website thương mại điện tử – Cửa hàng Chương Mobile
0 0 Phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?

Dịch vụ code thuê

TUICOCACH.COM NHẬN ĐẶT TEXTLINK, BANNER, GP
0
Giáo sư! có thể ném gạch bên dưới nhé!x