Giới thiệu

Class và Lập trình hướng đối tượng (OOP) là cơ sở cho rất nhiều ngôn ngữ lập trình hiện nay, nhưng riêng PHP lại dựng trên nguyên tắc của function. Class trên PHP được cập nhật với sự ra mắt của PHP phiên bản 4 và đã được viết lại cho bản 5 để hỗ trợ OOP. Bây giờ, bạn đã có thể dùng class trên PHP, và mặc dù thư viện của PHP vẫn là function là chính, class đang được update them rất nhiều.

Học lập trình web bằng ngôn ngữ PHP
PHP OOP

Read full articles from PHP5 Tutorial

Classes được coi là tập hợp các phương pháp, các biến và hằng số. Họ phản ánh một điều có thực, như một loại xe hoặc một loại trái cây. Bạn khai báo class một lần, nhưng bạn có thể tạo ra nhiều phiên bản khác của nó một cách dễ dàng.

Nếu bạn vẫn còn nhầm lẫn về class là gì và tại sao bạn cần chúng thig đừng lo. Trong phần tiếp theo, chúng tôi sẽ tạo class và sử dụng nó. Chúng tôi hy vọng qua ví dụ này bạn se hiểu rõ hơn về khái niệm này.

Chỉ định và sử dụng Class

Cú phác class của PHP khá giống với function, nhưng thay vì dùng từ function, chúng ta dùng class. Chúng ta bắt đầu tạo class cho User:

Nhìn thật là thô sơ phải không? Đương nhiên là tại thời điểm này, class này chưa có tác dụng gì hết. Vì vậy chúng ta cần đẩy nhanh nó:

$user = new User(); 

Nhưng vì class này chưa có tác dùng gì, nên *user cũng khá là vô dụng. Chúng ta cần thay đổi bằng cách khai thêm variables (biến) và method:

class User
{
    public$name;
    public$age;
    
    publicfunction Describe()
    {
        return$this->name ." is ".$this->age ." years old";
    }
}

Ở đây có một vài khái niệm mới. Trước hết, chúng ta khai báo hai class variable, tên và tuổi. Tên biến được cấu hình sửa đổi “public”, có nghĩa là các biến có thể được truy cập từ bên ngoài class.

Tiếp theo là về function Describe(). Như bạn thấy, nó trông giống như một function thông thường, nhưng có một số khác biệt. Nó có các từ khóa public ở đằng trước, để xác định quyền sửa đổi. Bên trong function, chúng tôi sử dụng variable “$this”, để truy cập các biến của class. $this là một variable đặc biệt trong PHP, đó là chức năng có sẵn trong slass function và luôn luôn đề cập đến nguồn được sử dụng.

Bây giờ chúng ta thử sử dụng class mới. Các mã sau đây nên được viết sau khi class đã được khai báo:

$user=new User();
$user->name ="John Doe";
$user->age =42;
echo$user->Describe();

Bạn có thể thấy là chũng tôi dùng -> operator. Chúng tôi cũng làm vậy trong Describe() và điều này có nghĩa là chúng tôi muốn mở gì đó từ object trước khi sử dụng operator. $user->name nghĩa là “Cho tôi name variable trên $user object”. Sau đó, giống như gán giá trị cho variable bình thường, đối với tên và tuổi của user object. Trên dòng cuối cùng, chúng ta dùng function Describe() trên user object, để trả về chuỗi thông tin, chúng tôi sẽ echo ra sau đó. Kết quả sẽ giống như thế này:

John Doe is 42 years old.

Xin chúc mừng, bạn vừa chỉ định và sử dụng class đầu tiên của bạn, nhưng còn rất nhiều điều các bạn cần học về class. Trong các phần tiếp theo, chúng ta sẽ tìm hiểu các khia cạnh khác của PHP class.

Constructors và destructors

Constructor và destructor là hai function đặc biệt tự động gọi ra khi object được tạo ta hoặc xóa đi. Constructor giúp bạn gọi parameter dễ dàng khi tạo ra object mới, dùng để tạo variable trên object. Dưới đây là ví dụ cho việc

class Animal
{
    public$name="No-name animal";
    
    publicfunction __construct()
    {
        echo"I'm alive!";        
    }
}

Constructor 

Như bạn thấy, constructor dùng như một function bình thương, ngoài việc nó bắt đầu bằng 2 sượt dưới. Trong PHP, khi bạn thấy một function với 2 sượt dưới thế này, bạn có thể hiểu đây là một function rất hữu dụng. Vậy function ‘__construct’ sẽ tự động gọi lên khi bạn tạo object.

$animal = new Animal(); 

Chỉ với một dòng code này, bạn sẽ tạo ra được object, gọi constructor và các dòng code sẽ chạy ra, và dòng “I’m alive” sẽ hiện lên màn hình. Tuy nhiên, như tôi đã đề cập, điểm mạnh của constructor là khả năng vượt thông số đê khởi tạo member variable:

name =$name;
    }
}

$animal=new Animal("Bob the Dog");
echo$animal->name;
?>

Gọi constructor có parameter cũng như là goi một function bình thường. Bạn có thể tạo bao nhiêu parameter cho một function cũng được.

Destructor 

Destructor được gọi lên khi bạn hủy một object. Trong một số ngôn ngữ lập trình khác, bạn phải tự tay xóa object mà bạn tạo ra, nhưng trong PHP, với trợ giúp của Garbage Collector, các object không cần thết sẽ tự động được xóa đi. Dưới đây là vì dụ:

name =$name;
    }
    
    publicfunction __destruct()
    {
        echo"I'm dead now :(";
    }
}

$animal=new Animal("Bob");
echo"Name of the animal: ".$animal->name;
?>

Như bạn thấy, destructor cũng giống như constructor, chỉ khác ở cái tên. Nếu bạn thử làm như ví dụ này, bạn sẽ thấy constructor, tên của con vật chúng ta đã viết ở dòng cuối và áu đó, khi script kết thúc, object bị hủy thì destructor sẽ được gọi ra và thông tin về việc con vật đã chết sẽ được hiện ra.

Bài dịch từ PHP5 Tutorial