"That's one small step for [a] man, one giant leap for mankind" - Neil Armstrong

Lập trình Step by Step

Bài 8 – Lập trình hướng đối tượng trong PHP – Class và Object

Đăng bởi vietobject, 25/06/2013

Series: PHP nâng cao

Độ khó: Trung bình

  •  5429

Lập trình hướng đối tượng là một kiểu viết mã cho phép nhà phát triển nhóm các phần công việc tương tự vào với nhau bên trong một Class, như vậy sẽ cho phép tiết kiệm thời gian viết mã và làm mọi thứ trở nên bớt phức tạp hơn.


Khái niệm về Class và Object

Hãy lấy ví dụ như bạn đang chuẩn bị thi công một cây cầu.

* Một Class, theo ví dụ trên, tương tự như một bản kết hoạch chi tiết cho cây cầu. Bạn sẽ cần phải xác định hình dáng của cây cầu, mối quan hệ giữa các thành phần của nó(chân cầu, thân cầu, kèo cột,…), các kế hoạch cho nó…

* Một Object, sẽ là một cây cầu được thi công bởi bản kế hoạch trên. Bên trong Object sẽ chứa rất nhiều dữ liệu như các vật liệu để tạo ra nó(sỏi, đá, nhựa đường,…). Và tất nhiên, bạn sẽ có thể xây dựng được rất nhiều cây cầu từ một bản kế hoạch như trên.

Cấu trúc một Class

Cú pháp

Class tênClass
{
Property, Method
}

* Các biến bên trong class được gọi là property(thuộc tính).
* Các hàm bên trong class được gọi là method(phương thức).

B1: Tạo file bai8.php trong thư mục \wamp\www. Nhập đoạn code sau.

<?php

Class car
{
	//khai báo các thuộc tính
	public $Make;
	public $Model;
	public $Year;
	public $Color;
}

//Khởi tạo một đối tượng myCar đại diện cho class car
$myCar = new car;

//Gán các giá trị mới cho các thuộc tính bên trong class car từ đối tượng myCar
$myCar->Make = "Honda";
$myCar->Model = "Kia Morning";
$myCar->Year = 2010;
$myCar->Color = "yellow";

//In ra các thuộc tính 
echo $myCar->Make." - ".$myCar->Model." - ".$myCar->Year." - ".$myCar->Color;

?>

* Các thuộc tính có thể được gán giá trị ngay khi khai báo. Đó sẽ được xem là các giá trị mặc định cho chúng.

* Để tạo một đối tượng đại diện cho một class, ta dùng cú pháp: $tênđốitượng = new tênclass.

* Để trỏ đến một thuộc tính bên trong class từ một đối tượng, ta dùng cú pháp: $tênđốitượng->tênthuộctính.

* Từ khóa public là để chỉ phạm vi của thuộc tính. Chúng ta sẽ tìm hiểu kỹ hơn trong những bài sau.

B2: Mở trình duyệt, nhập đường dẫn http://localhost/bai8.php

1

B3: Bây giờ, chúng ta sẽ tạo thêm cho class car 1 phương thức

<?php

Class car
{
	//khai báo các thuộc tính
	public $Make;
	public $Model;
	public $Year;
	public $Color;
	
	/*
	Phương thức customerCarModel
	*/
	public function customerCarModel()
	{
		echo "Xe của bạn có model là: ".$this->Model;
	}
}

//Khởi tạo một đối tượng myCar đại diện cho class car
$myCar = new car;

//Gán các giá trị mới cho các thuộc tính bên trong class car từ đối tượng myCar
$myCar->Make = "Honda";
$myCar->Model = "Kia Morning";
$myCar->Year = 2010;
$myCar->Color = "yellow";

//In ra các thuộc tính 
echo $myCar->Make." - ".$myCar->Model." - ".$myCar->Year." - ".$myCar->Color;

echo "<br />";

//Gọi phương thức customerCarModel
$myCar->customerCarModel();

?>

* Để sử dụng một thuộc tính bên trong một phương thức cùng class, ta dùng cú pháp: $this->tênthuộctính.

B4: Refresh lại trình duyệt

1