Tìm hiểu Class trong PHP
Lớp trong PHP là một khái niệm cơ bản của lập trình hướng đối tượng (OOP). Nó cho phép bạn tạo ra các đối tượng với các thuộc tính và phương thức riêng biệt, giúp tổ chức và quản lý mã nguồn một cách hiệu quả hơn.
Khái niệm cơ bản về lớp PHP
Định nghĩa lớp
Một lớp trong PHP được định nghĩa bằng từ khóa class
, theo sau là tên lớp và một cặp dấu ngoặc nhọn chứa các thuộc tính và phương thức của lớp.
Cú pháp
class MyClass {
// Thuộc tính
public $property1;
private $property2;
// Phương thức
public function method1() {
// Code của phương thức
}
private function method2() {
// Code của phương thức
}
}
Tạo đối tượng từ lớp
Để tạo một đối tượng từ một lớp, bạn sử dụng từ khóa new
theo sau là tên lớp.
Ví dụ
$object = new MyClass();
$object->property1 = "Giá trị";
$object->method1();
Thuộc tính và phương thức
Thuộc tính
Thuộc tính là các biến được định nghĩa trong một lớp. Chúng có thể có các mức truy cập khác nhau như public
, private
, và protected
.
Ví dụ
class Car {
public $make;
public $model;
private $year;
public function setYear($year) {
$this->year = $year;
}
public function getYear() {
return $this->year;
}
}
$car = new Car();
$car->make = "Toyota";
$car->model = "Corolla";
$car->setYear(2020);
echo $car->getYear(); // Output: 2020
Phương thức
Phương thức là các hàm được định nghĩa trong một lớp. Chúng có thể truy cập và thao tác với các thuộc tính của lớp.
Ví dụ
class Calculator {
public function add($a, $b) {
return $a + $b;
}
public function subtract($a, $b) {
return $a - $b;
}
}
$calc = new Calculator();
echo $calc->add(5, 3); // Output: 8
echo $calc->subtract(5, 3); // Output: 2
Constructor và Destructor
Constructor
Constructor là một phương thức đặc biệt được gọi tự động khi một đối tượng được tạo ra. Nó thường được sử dụng để khởi tạo các thuộc tính của đối tượng.
Ví dụ
class Person {
public $name;
public $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
}
$person = new Person("John", 25);
echo $person->name; // Output: John
echo $person->age; // Output: 25
Destructor
Destructor là một phương thức đặc biệt được gọi tự động khi một đối tượng bị hủy. Nó thường được sử dụng để giải phóng tài nguyên.
Ví dụ
class FileHandler {
private $file;
public function __construct($filename) {
$this->file = fopen($filename, "w");
}
public function write($data) {
fwrite($this->file, $data);
}
public function __destruct() {
fclose($this->file);
}
}
$handler = new FileHandler("example.txt");
$handler->write("Hello, World!");
Kế thừa (Inheritance)
Kế thừa cho phép một lớp con kế thừa các thuộc tính và phương thức từ một lớp cha. Điều này giúp tái sử dụng mã và tạo ra các mối quan hệ phân cấp giữa các lớp.
Ví dụ
class Animal {
public $name;
public function makeSound() {
echo "Some generic sound";
}
}
class Dog extends Animal {
public function makeSound() {
echo "Bark";
}
}
$dog = new Dog();
$dog->name = "Buddy";
echo $dog->name; // Output: Buddy
$dog->makeSound(); // Output: Bark
Tính đa hình (Polymorphism)
Tính đa hình cho phép các đối tượng thuộc các lớp khác nhau có thể được xử lý thông qua cùng một giao diện. Điều này giúp mã linh hoạt và dễ mở rộng hơn.
Ví dụ
class Shape {
public function draw() {
// Code vẽ hình
}
}
class Circle extends Shape {
public function draw() {
echo "Drawing a circle";
}
}
class Square extends Shape {
public function draw() {
echo "Drawing a square";
}
}
function drawShape(Shape $shape) {
$shape->draw();
}
$circle = new Circle();
$square = new Square();
drawShape($circle); // Output: Drawing a circle
drawShape($square); // Output: Drawing a square
Kết luận
Lớp và đối tượng là các khái niệm cốt lõi của lập trình hướng đối tượng trong PHP. Bằng cách hiểu và sử dụng chúng một cách hiệu quả, bạn có thể viết mã sạch hơn, dễ bảo trì hơn và tái sử dụng được nhiều hơn.