Giới thiệu về Lập trình Hướng Đối tượng (OOP) trong PHP
Bây giờ chúng ta sẽ tìm hiểu về Lập trình Hướng Đối tượng (OOP) trong PHP. Hãy xem xét một ví dụ từ đời sống, sau đó chuyển nó vào PHP.
Lấy ô tô làm ví dụ. Nó có bánh xe, màu sơn, kiểu thân xe, dung tích động cơ và vân vân. Ngoài ra, người lái có thể ra lệnh cho nó: di chuyển, dừng lại, rẽ phải, rẽ trái, v.v.
Có thể nói rằng tồn tại một lớp ô tô nhất định, sở hữu những thuộc tính chung (tất cả đều có bánh xe và tất cả đều có thể nhận lệnh).
Một chiếc ô tô cụ thể, đang đỗ trên đường - là một đại diện của lớp này, hay nói cách khác, là một đối tượng của lớp này. Tất cả đối tượng của lớp này đều có thuộc tính: số lượng bánh xe, màu sắc, kiểu thân xe và phương thức: di chuyển, dừng lại, rẽ phải, rẽ trái.
Nói cách khác, bản thân lớp - là bản thiết kế, theo đó nhà máy sản xuất ra những chiếc ô tô. Đối tượng là chính chiếc xe, được làm ra theo những bản thiết kế đó.
Trong PHP, một lớp được tạo bằng từ khóa
class, theo sau là tên của
lớp đó. Hãy tạo lớp Car:
<?php
class Car
{
// mã ở đây, tức là bản thiết kế PHP cho ô tô
}
?>
Bây giờ hãy chỉ định trong bản thiết kế của chúng ta rằng bất kỳ ô tô nào được tạo ra theo bản thiết kế này sẽ có thuộc tính cho màu sắc và thuộc tính cho lượng nhiên liệu.
Để làm điều này, bên trong lớp, chúng ta viết thuộc tính
$color và thuộc tính $fuel:
<?php
class Car
{
// Đặt các thuộc tính (về cơ bản là biến của lớp):
public $color; // màu sắc của ô tô
public $fuel; // lượng nhiên liệu
}
?>
Bây giờ hãy tạo các phương thức của lớp chúng ta.
Trong PHP, các phương thức, giống như các hàm thông thường, được khai báo
bằng từ khóa function,
phía trước nó viết từ khóa
public.
Như đã đề cập ở trên, ô tô của chúng ta có thể di chuyển, có thể rẽ, có thể dừng lại. Hãy tạo các phương thức tương ứng trong lớp của chúng ta:
<?php
class Car
{
public $color; // màu sắc của ô tô
public $fuel; // lượng nhiên liệu
// Lệnh di chuyển:
public function go()
{
// một đoạn mã PHP nào đó
}
// Lệnh rẽ:
public function turn()
{
// một đoạn mã PHP nào đó
}
// Lệnh dừng lại:
public function stop()
{
// một đoạn mã PHP nào đó
}
}
?>
Chúng ta đã tạo ra bản thiết kế cho chiếc ô tô của mình. Bây giờ cần đến nhà máy và tạo ra một đối tượng của lớp này (tức là một chiếc ô tô cụ thể).
Trong PHP, điều này được thực hiện bằng từ khóa
new, sau đó viết tên lớp:
<?php
new Car;
?>
Tuy nhiên, nếu chỉ đơn giản tạo một đối tượng của lớp - điều đó sẽ không dẫn đến đâu (nó cũng giống như, ví dụ, khai báo một mảng và không lưu nó vào đâu cả). Chúng ta cần một biến để lưu trữ đối tượng này.
Hãy để biến này được gọi là $myCar
- gán đối tượng chúng ta vừa tạo vào nó:
<?php
$myCar = new Car;
?>
Sau khi tạo ô tô, có thể truy cập
vào các thuộc tính của nó. Truy cập vào chúng xảy ra
thông qua dấu mũi tên ->. Hãy thiết lập
các thuộc tính của đối tượng chúng ta:
<?php
$myCar = new Car; // ra lệnh cho nhà máy làm ô tô
// Thiết lập các thuộc tính của đối tượng:
$myCar->color = 'red'; // sơn màu đỏ
$myCar->fuel = 50; // đổ nhiên liệu
?>
Xong, ô tô của chúng ta đã được tạo, sơn và đổ nhiên liệu. Bây giờ chúng ta có thể ra lệnh cho nó thông qua các phương thức của chiếc ô tô này.
Truy cập vào các phương thức cũng xảy ra thông qua dấu mũi tên, nhưng, khác với thuộc tính, sau tên phương thức cần viết dấu ngoặc tròn. Hãy ra lệnh cho đối tượng của chúng ta:
<?php
$myCar->go();
$myCar->turn();
$myCar->stop();
?>