Lab 2: Lập Trình Hướng Đối Tượng Trong PHP

Trang chủ Blog LẬP TRÌNH PHP Lab 2: Lập Trình Hướng Đối Tượng Trong PHP
Lab 2: Lập Trình Hướng Đối Tượng Trong PHP

Trong Lap 2 này, chúng ta sẽ cùng tiềm hiểu về cơ chế của lập trình hướng đối tượng (OOP) trong PHP, xây dựng lớp (class), và lớp kế thừa (extends). Bởi vì phần này khá trừu tượng cho các bạn mới bắt đầu nên mình khuyên các bạn nên tự code để dễ dàng hiểu cách vận hành của hướng đối trượng trong PHP hơn.

1. Các Bước Thực Hiện

– Tạo thư mục mới có lên là LAP2 trong thư mục gốc htdocs của Xampp. Trên trình duyệt sẽ là: http://localhost/lap2

– Hoặc bạn cũng có thể đặt thư mục LAP2 trong 1 thư mục, ví dụ htdocs/demo/LAP2, nhưng khi gõ trên trình duyệt sẽ là http://localhost/demo/lap2

– Nhấn chuột phải vào project LAP2 tạo mới tập tin đặt tên là thanhvien.php có nội dung.

– Tương tự tạo mới tập tin hotro.php có nội dung:

File này có chứa hàm mở rộng để tạo id cho đối tượng, định nghĩa từ khóa static trước biến $userid để gán giá trị một duy nhất khi một đối tượng user được khởi tạo.

Tương tự, tạo file index.php với nội dung để hiện ra màn hình.

Copy nếu đã hiểu.

<!DOCTYPE html>
<html>
<head>
<title>HƯỚNG ĐỐI TƯỢNG PHP</title>
<!-- Unicode Tiếng Việt -->
<meta charset="utf-8"> 
<meta name="author" content="HuynhThaiHung.com" />
<!-- Tập tin định nghĩa css -->
<link href="../lap1/style.css" rel="stylesheet" /> 
</head>
<body>
<div id="wrapper">
	<div class="row">
	<?php 
		require_once("thanhvien.php");
		// create new user info
		$sv = new thanhvien("Huynh Hung", "info@huynhthaihung.com");
		//output user info
		echo "<h2>---Thông tin Thành viên--</h2>";
		echo "Mã: ".$sv -> get_id()."<br/>";
		echo "Họ Tên: ".$sv -> get_hoten()."<br/>";
		echo "Email: ".$sv -> get_email()."<br/>";
	?>
	<?php 
		$sv2 = new thanhvien("Nguyen Van A", "email2gmail.com");
		echo "<h2>---Thêm thông tin--</h2>";
		echo "Mã: ".$sv2 -> get_id()."<br/>";
		echo "Họ Tên: ".$sv2 -> get_hoten()."<br/>";
		echo "Email: ".$sv2 -> get_email()."<br/>";
	?>
	</div>
	<footer>
		<p>Huỳnh Thái Hưng: <a href="mailto:info@huynhthaihung.com">info@huynhthaihung.com</a>.</p>
	</footer>
</div>
</body>
</html>

– Kết quả được màn hình:

– Tại đây bạn kiểm tra xem có thiếu thông tin nào không?

2. Lập Trình Hướng Đối Tượng PHP Nâng Cao

Tìm hiểu về khái niệm: Kế Thừa Trong PHP

– Chuột phải vào project LAP2 tạo mới tập tin đặt tên là nhanvat.php, trong file này có class nhanvat sẽ có 2 thuộc tính là $hoten$maquocgia.

Code: Copy đếu đã hiểu!

<?php 
class nhanvat{
	private $hoten;
	private $maquocgia;
	
	public function __construct($hoten, $maquocgia){
		$this -> hoten = $hoten;
		$this -> maquocgia = $maquocgia;
	}
	public function get_hoten(){
		return $this -> hoten;
	}
	public function get_maquocgia(){
		return $this -> maquocgia;
	}
}
?>

– Tiếp theo tạo mới tập tin đặt tên nhanvien.php lớp nhanvien kế thừa (extends) lớp nhanvat ở trên. Lớp này có 2 thuộc tính là $manhanvien$bophan

– class nhanvien đã kế thừa thêm 2 thuộc tính của lớp cha (class nhanvat) là $hoten$maquocgia

– Bổ sung đoạn code mới thực thi kết quả của phần mở rộng hướng đối tượng PHP. Mở tập tin index.php và bổ sung đoạn code dưới để thực nghiệm kết quả.

Code: Copy nếu đã hiểu!

<?php
		//more opp php
		include("nhanvien.php");
		$nhanvat = new nhanvat("Do Nam Trung", 5678);
		echo "<h2>---Thêm: Hướng Đối Tượng PHP--</h2>";
		echo "Họ Tên: ".$nhanvat -> get_hoten()."<br/>";
		echo "Mã Quốc Gia: ".$nhanvat -> get_maquocgia()."<br/>";
		
	?>
	<?php
		$nhanvien = new nhanvien("Nguyen Thanh Tung", 1234, "Bao Ve");
		echo "<h2>---Nhân Viên--</h2>";
		echo "Mã nhân viên: ".$nhanvien -> get_manhanvien() ."<br/>";
		echo "Họ tên: ".$nhanvien -> get_hoten()."<br/>";
		echo "Mã QG: ".$nhanvien -> get_maquocgia()."<br/>";
		echo "Bộ phận: ".$nhanvien -> get_bophan()."<br/>"
		
	?>

– Kết quả màn hình:

Hết LAP2 bạn có thắc mắc gì không?