- Giả sử chúng ta có một lớp tên là Fruit. Một Trái cây có thể có các thuộc tính như tên, màu sắc, trọng lượng, v.v. Chúng ta có thể xác định các biến như $name, $color và $weight để giữ các giá trị của các thuộc tính này.
- Khi các đối tượng riêng lẻ (quả táo, chuối, v.v.) được tạo, chúng kế thừa tất cả các thuộc tính và hành vi từ lớp, nhưng mỗi đối tượng sẽ có các giá trị khác nhau cho các thuộc tính.
Một lớp được định nghĩa bằng cách sử dụng class
từ khóa, theo sau là tên của lớp và một cặp dấu ngoặc nhọn ({}). Tất cả các thuộc tính và phương thức của nó nằm bên trong dấu ngoặc nhọn:
Cú pháp
<?php class Fruit { // code goes here... } ?> |
Dưới đây chúng ta khai báo một lớp có tên Fruit bao gồm hai thuộc tính ($name và $color) và hai phương thức set_name() và get_name() để thiết lập và nhận thuộc tính $name:
<?php class Fruit { // Properties public $name; public $color; // Methods function set_name($name) { $this->name = $name; } function get_name() { return $this->name; } } ?> |
Lưu ý: Trong một lớp, các biến được gọi là thuộc tính và hàm được gọi là phương thức!
Các lớp học không là gì nếu không có đối tượng! 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 new
từ khóa.
Trong ví dụ bên dưới, $apple và $banana là các thể hiện của lớp Fruit:
Từ khóa $this đề cập đến đối tượng hiện tại và chỉ khả dụng bên trong các phương thức.
Nhìn vào ví dụ sau:
Ví dụ
<?php class Fruit { public $name; } $apple = new Fruit(); ?> |
Vậy, chúng ta có thể thay đổi giá trị của thuộc tính $name ở đâu? Có hai cách:
1. Bên trong lớp (bằng cách thêm phương thức set_name() và sử dụng $this):
Bạn có thể sử dụng instanceof
từ khóa để kiểm tra xem một đối tượng có thuộc về một lớp cụ thể hay không: