Xây dựng lớp (class) và tạo đối tượng (object) trong PHP

Đây là bài 30/39 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ề lớp (class) và đối tượng (object) 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.

Trước khi tìm hiểu về OOP trong PHP, các bạn có thể tham khảo trước series bài học Phương pháp lập trình hướng đối tượng. Series bài học này giúp các bạn có tư duy cơ bản về OOP với C++, làm cơ sở để học và hiểu OOP trong các ngôn ngữ khác dễ dàng hơn.

1. Khái niệm lớp (class) và đối tượng (object) trong PHP

Từ PHP5, chúng ta có thể viết code PHP theo phong cách lập trình hướng đối tượng (Object-Oriented Programming). Lớp (class) và đối tượng (object) là 2 khái niệm cốt lõi trong OOP.

Lớp (class) là một thiết kế (blueprint), mẫu (prototype) cho các đối tượng cùng kiểu. Đối tượng (object) là một thực thể cụ thể của lớp (class). Ví dụ:

Lớp (class)Đối tượng (object)
FruitApple Banana Mango
CarVolvo Audi Toyota

Lớp (class) đóng gói các thuộc tính (attribute)phương thức (method) chung của các đối tượng.

Thuộc tính: Một thuộc tính của một lớp là một trạng thái chung được đặt tên của lớp đó. Ví dụ: Lớp Ôtô có các thuộc tính: màu sắc, vận tốc, hãng sản xuất,…

Mỗi đối tượng của lớp có các giá trị của thuộc tính khác nhau. Ví dụ: một chiếc Ôtô bạn đang sử dụng của hãng Toyota có thể có màu đen, vận tốc 60 km/h.

Phương thức: Xác định các hoạt động chung mà tất cả các đối tượng của lớp thực hiện được. Ví dụ: Lớp Ôtô có các phương thức: tăng tốc độ, giảm tốc độ, rẽ trái, rẽ phải,…

2. Định nghĩa lớp (class) trong PHP

Sử dụng từ khóa class để định nghĩa một lớp (class) trong PHP. Theo sau từ khóa class là tên lớp và cặp dấu ngoặc nhọn {}. Các thuộc tính và phương thức của lớp được định nghĩa trong dấu ngoặc nhọn này.

<?php
class Cat {
    # Properties of Cat class
    public $name;
    public $color;
    # getter and setter methods
    function set_name($name) {
        $this->name = $name;
    }
    function get_name() {
        return $this->name;
    }
    function set_color($color) {
        $this->color = $color;
    }
    function get_color() {
        return $this->color;
    }
    # Methods of Cat class
    function info(){
        return $this->name." cat has ".$this->color." color";
    }
    function sleep(){
        return $this->name." cat takes a nap.";
    }
}
?>

Từ khóa $this giúp tham chiếu đến đối tượng (object) hiện tại của lớp (class). Từ khóa $this chỉ được sử dụng trong method của lớp.

3. Tạo đối tượng (object) trong PHP

Chúng ta có thể tạo nhiều đối tượng từ một lớp. Mỗi đối tượng có tất cả các thuộc tính và phương thức được định nghĩa trong lớp nhưng chúng sẽ có các giá trị thuộc tính khác nhau.

Các đối tượng của một lớp được tạo bằng cách sử dụng từ khóa new.

<?php
class Cat {
    # Properties of Cat class
    public $name;
    public $color;
    # getter and setter methods
    function set_name($name) {
        $this->name = $name;
    }
    function get_name() {
        return $this->name;
    }
    function set_color($color) {
        $this->color = $color;
    }
    function get_color() {
        return $this->color;
    }
    # Methods of Cat class
    function info(){
        return $this->name." cat has ".$this->color." color";
    }
    function sleep(){
        return $this->name." cat takes a nap.";
    }
}
$tom = new Cat();
$tom->set_name("Tom");
$tom->set_color("grey and white");

$kitty = new Cat();
$kitty->set_name("Kitty");
$kitty->set_color("white and pink");

echo $tom->info();
echo "<br>";
echo $kitty->info();
?>
Kết quả
Tom cat has grey and white color
Kitty cat has white and pink color

4. Kiểm tra một object thuộc về một class trong PHP

Chúng ta có thể sử dụng từ khóa instanceof để kiểm tra xem một đối tượng có thuộc một lớp hay không.

<?php
class Cat {
    # Properties of Cat class
    public $name;
    public $color;
    # getter and setter methods
    function set_name($name) {
        $this->name = $name;
    }
    function get_name() {
        return $this->name;
    }
    function set_color($color) {
        $this->color = $color;
    }
    function get_color() {
        return $this->color;
    }
    # Methods of Cat class
    function info(){
        return $this->name." cat has ".$this->color." color";
    }
    function sleep(){
        return $this->name." cat takes a nap.";
    }
}
$tom = new Cat();
//bool(true)
var_dump($tom instanceof Cat);
//bool(false)
var_dump($tom instanceof Dog);
?>

Trong ví dụ trên, $tom là một object của lớp Cat nên kết quả trả về là bool(true). $tom là một object của lớp Dog nên kết quả trả về là bool(false).

5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Tạo (create) và ghi (write) file trong PHPHàm khởi tạo (constructor) và hàm hủy (destructor) của class trong PHP >>
Chia sẻ trên mạng xã hội:

Tác giả Vinh Lê

Vinh Lê hiện đang là biên tập viên tại Góc Học IT.

Bài viết của Vinh Lê

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ỏ.