bài 3 lập trình php (phần 1) - giáo trình fpt

62
Bài 3 Lập trình PHP(phần 1)

Upload: hoc-lap-trinh-web

Post on 17-Jun-2015

2.769 views

Category:

Documents


21 download

DESCRIPTION

Giới thiệu về cơ sở dữ liệu quan hệ và MySQL Giới thiệu về cơ sở dữ liệu quan hệ Các kiểu dữ liệu thông dụng trong MySQL Các câu lệnh dùng để thao tác dữ liệu trong SQL Giới thiệu MySQL Sử dụng phpMyAdmin Sử dụng PHP với MySQL Sử dụng PHP để làm việc với MySQL Lấy dữ liệu từ tập kết quả Mô hình MVC Giới thiệu về mô hình MVC Hướng dẫn viết hàm Hướng dẫn chuyển hướng yêu cầu Nhắc lại bài cũ Giới thiệu về cơ sở dữ liệu quan hệ và MySQL Giới thiệu về cơ sở dữ liệu quan hệ Các kiểu dữ liệu thông dụng trong MySQL Các câu lệnh dùng để thao tác dữ liệu trong SQL Giới thiệu MySQL Sử dụng phpMyAdmin Sử dụng PHP với MySQL Sử dụng PHP để làm việc với MySQL Lấy dữ liệu từ tập kết quả Mô hình MVC Giới thiệu về mô hình MVC Hướng dẫn viết hàm Hướng dẫn chuyển hướng yêu cầu

TRANSCRIPT

Page 1: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Bài 3Lập trình PHP(phần 1)

Page 2: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Giới thiệu về cơ sở dữ liệu quan hệ và MySQLGiới thiệu về cơ sở dữ liệu quan hệCác kiểu dữ liệu thông dụng trong MySQLCác câu lệnh dùng để thao tác dữ liệu trong SQLGiới thiệu MySQLSử dụng phpMyAdmin

Sử dụng PHP với MySQLSử dụng PHP để làm việc với MySQLLấy dữ liệu từ tập kết quả

Mô hình MVCGiới thiệu về mô hình MVCHướng dẫn viết hàmHướng dẫn chuyển hướng yêu cầu

Nhắc lại bài cũ

Giới thiệu về cơ sở dữ liệu quan hệ và MySQLGiới thiệu về cơ sở dữ liệu quan hệCác kiểu dữ liệu thông dụng trong MySQLCác câu lệnh dùng để thao tác dữ liệu trong SQLGiới thiệu MySQLSử dụng phpMyAdmin

Sử dụng PHP với MySQLSử dụng PHP để làm việc với MySQLLấy dữ liệu từ tập kết quả

Mô hình MVCGiới thiệu về mô hình MVCHướng dẫn viết hàmHướng dẫn chuyển hướng yêu cầu

Bài 3: Lập trình PHP (phần 1) 2

Page 3: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Nội dung bài học

1. Viết câu lệnh điều khiển

2. Khởi tạo và sử dụng hàm

Bài 3: Lập trình PHP (phần 1) 3

2. Khởi tạo và sử dụng hàm

3. Khởi tạo và sử dụng đối tượng

Page 4: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Trong phần này có các nội dung:1.1. Viết mã cho biểu thức điều kiện1.2. Viết cấu trúc lựa chọn

1. Viết câu lệnh điều khiển

Bài 3: Lập trình PHP (phần 1) 4

Page 5: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Sử dụng toán tử so sánh để ép kiểu:

Ví dụ:

Các toán tử logic:

1.1. Viết mã cho biểu thức điều kiện

Sử dụng toán tử so sánh để ép kiểu:

Ví dụ:

Các toán tử logic:

Bài 3: Lập trình PHP (phần 1) 5

Page 6: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Sử dụng câu lệnh if else: có thể viết rời else và if hoặc viết liềnelseifSử dụng toán tử điều kiện:

Cú pháp:(<biểu thức điều kiện>) ? <giá trị nếu biểu thức là đúng> : < giá trịnếu biểu thức là sai>Ví dụ:

1.2. Viết cấu trúc lựa chọn

Bài 3: Lập trình PHP (phần 1) 6

Page 7: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Sử dụng câu lệnh switch case:Rất hữu dụng khi lập trình tầng controllerCú pháp:

switch (<Biến của biểu thức so sánh>) {case <Giá trị so sánh 1>:

<Khối lệnh 1>break;

case <Giá trị so sánh 2>:<Khối lệnh 2>break;

default:<Khối lệnh>break;

}

Viết cấu trúc lựa chọn

Sử dụng câu lệnh switch case:Rất hữu dụng khi lập trình tầng controllerCú pháp:

switch (<Biến của biểu thức so sánh>) {case <Giá trị so sánh 1>:

<Khối lệnh 1>break;

case <Giá trị so sánh 2>:<Khối lệnh 2>break;

default:<Khối lệnh>break;

}

Bài 3: Lập trình PHP (phần 1) 7

Page 8: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Ví dụ:

Viết cấu trúc lựa chọn

Bài 3: Lập trình PHP (phần 1) 8

Page 9: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Trong phần này có các nội dung:2.1. Các kỹ năng cơ bản để làm việc với hàm

2.1.1. Khởi tạo và gọi hàm2.1.2. Truyền tham số theo giá trị và tham chiếu2.1.3. Sử dụng phạm vi hoạt động của biến2.1.4. Gán giá trị mặc định cho tham số2.1.5. Sử dụng danh sách tham số có độ dài biến đổi

2.2. Khởi tạo và sử dụng thư viện của hàm

2. Khởi tạo và sử dụng hàm

Trong phần này có các nội dung:2.1. Các kỹ năng cơ bản để làm việc với hàm

2.1.1. Khởi tạo và gọi hàm2.1.2. Truyền tham số theo giá trị và tham chiếu2.1.3. Sử dụng phạm vi hoạt động của biến2.1.4. Gán giá trị mặc định cho tham số2.1.5. Sử dụng danh sách tham số có độ dài biến đổi

2.2. Khởi tạo và sử dụng thư viện của hàm

Bài 3: Lập trình PHP (phần 1) 9

Page 10: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Cú pháp của một hàm

Để viết hàm có trả về dữ liệu, viết câu lệnh return cuối thân hàm.Lệnh return kết thúc việc thực hiện hàm và trả về giá trị xác định.Nếu không gán giá trị trả về thì giá trị NULL sẽ được trả vềĐể hàm không trả về dữ liệu, không viết lệnh returnKhi thực hiện lời gọi hàm, các đối số trong danh sách đối số phảitheo cùng thứ tự của các tham số trong danh sách tham số màhàm đã xác định và phải tương thích về kiểu dữ liệu

2.1.1. Khởi tạo và gọi hàm

Cú pháp của một hàm

Để viết hàm có trả về dữ liệu, viết câu lệnh return cuối thân hàm.Lệnh return kết thúc việc thực hiện hàm và trả về giá trị xác định.Nếu không gán giá trị trả về thì giá trị NULL sẽ được trả vềĐể hàm không trả về dữ liệu, không viết lệnh returnKhi thực hiện lời gọi hàm, các đối số trong danh sách đối số phảitheo cùng thứ tự của các tham số trong danh sách tham số màhàm đã xác định và phải tương thích về kiểu dữ liệu

Bài 3: Lập trình PHP (phần 1) 10

Page 11: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Hướng dẫn xây dựng hàm:

Khởi tạo và gọi hàm

Bài 3: Lập trình PHP (phần 1) 11

Page 12: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Hướng dẫn gọi hàm:

Khởi tạo và gọi hàm

Bài 3: Lập trình PHP (phần 1) 12

Page 13: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Mặc định, tất cả các đối số của hàm được truyền theo giá trịTruyền tham số theo giá trị: một bản sao của đối số sẽ được gửi tớihàm. Khi hàm thay đổi một tham số, nó chỉ thay đổi bản sao củađối số, chứ không phải đối số ban đầu

Truyền tham số theo tham chiếu: một tham chiếu đến các tham sốban đầu sẽ được gửi tới hàm. Khi hàm thay đổi tham số, hàm thựcsự thay đổi các đối số ban đầu. Cú pháp: viết ký hiệu ‘&’ trước thamsố

2.1.2. Truyền tham sốtheo giá trị và tham chiếu

Mặc định, tất cả các đối số của hàm được truyền theo giá trịTruyền tham số theo giá trị: một bản sao của đối số sẽ được gửi tớihàm. Khi hàm thay đổi một tham số, nó chỉ thay đổi bản sao củađối số, chứ không phải đối số ban đầu

Truyền tham số theo tham chiếu: một tham chiếu đến các tham sốban đầu sẽ được gửi tới hàm. Khi hàm thay đổi tham số, hàm thựcsự thay đổi các đối số ban đầu. Cú pháp: viết ký hiệu ‘&’ trước thamsố

Bài 3: Lập trình PHP (phần 1) 13

Page 14: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Đối số được truyền theo giá trị:

Đối số được truyền theo tham chiếu:

Truyền tham sốtheo giá trị và tham chiếu

Đối số được truyền theo giá trị:

Đối số được truyền theo tham chiếu:

Bài 3: Lập trình PHP (phần 1) 14

Page 15: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Phạm vi của một biến xác định đoạn mã có thể truy cập biến đó

Biến được định nghĩa bên trong hàm:Có phạm vi cục bộChỉ có hiệu lực với đoạn mã chạy bên trong hàm

Biến được định nghĩa bên ngoài hàm:Có phạm vi toàn cụcChỉ có hiệu lực với đoạn mã chạy ở cấp toàn cục và không có hiệu lựctrong phạm vi bất kỳ hàm nào (theo mặc định)

2.1.3. Phạm vi hoạt động của biến

Phạm vi của một biến xác định đoạn mã có thể truy cập biến đó

Biến được định nghĩa bên trong hàm:Có phạm vi cục bộChỉ có hiệu lực với đoạn mã chạy bên trong hàm

Biến được định nghĩa bên ngoài hàm:Có phạm vi toàn cụcChỉ có hiệu lực với đoạn mã chạy ở cấp toàn cục và không có hiệu lựctrong phạm vi bất kỳ hàm nào (theo mặc định)

Bài 3: Lập trình PHP (phần 1) 15

Page 16: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Truy cập một biến toàn cục từ bên trong hàm: sử dụng câu lệnhtoàn cục để nhập một biến từ phạm vi toàn cục sang phạm vi cụcbộ

Nhận tất cả các biến được lưu trong phạm vi toàn cục: sử dụngmảng tích hợp $GLOBALS

Mảng $GLOBALS là biến toàn cục tự động giống như các mảng$_POST và $_GET

Phạm vi hoạt động của biến

Truy cập một biến toàn cục từ bên trong hàm: sử dụng câu lệnhtoàn cục để nhập một biến từ phạm vi toàn cục sang phạm vi cụcbộ

Nhận tất cả các biến được lưu trong phạm vi toàn cục: sử dụngmảng tích hợp $GLOBALS

Mảng $GLOBALS là biến toàn cục tự động giống như các mảng$_POST và $_GET

Bài 3: Lập trình PHP (phần 1) 16

Page 17: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Biến có phạm vi toàn cục:

Biến có phạm vi địa phương:

Phạm vi hoạt động của biến

Biến có phạm vi toàn cục:

Biến có phạm vi địa phương:

Bài 3: Lập trình PHP (phần 1) 17

Page 18: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Hướng dẫn truy cập biến toàn cục từ phạm vi bên trong hàm:

Cách khác để truy cập biến toàn cục từ phạm vi bên trong hàm:

Phạm vi hoạt động của biến

Hướng dẫn truy cập biến toàn cục từ phạm vi bên trong hàm:

Cách khác để truy cập biến toàn cục từ phạm vi bên trong hàm:

Bài 3: Lập trình PHP (phần 1) 18

Page 19: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Cú pháp:<Tên tham số> = <giá trị mặc định>

Giá trị mặc định phải là giá trị hoặc mảng các giá trị vô hướng hoặclà giá trị NULL

Viết hàm thiết lập giá trị mặc định cho một tham số:Bước 1: gán giá trị NULL cho tham số đóBước 2: trong phạm vi hàm, kiểm tra xem tham số này có chứa giá trịNULL không

2.1.4. Gán giá trị mặc địnhcho tham số

Cú pháp:<Tên tham số> = <giá trị mặc định>

Giá trị mặc định phải là giá trị hoặc mảng các giá trị vô hướng hoặclà giá trị NULL

Viết hàm thiết lập giá trị mặc định cho một tham số:Bước 1: gán giá trị NULL cho tham số đóBước 2: trong phạm vi hàm, kiểm tra xem tham số này có chứa giá trịNULL không

Bài 3: Lập trình PHP (phần 1) 19

Page 20: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Hướng dẫn gán giá trị mặc định cho tham số:

Gán giá trị mặc địnhcho tham số

Bài 3: Lập trình PHP (phần 1) 20

Page 21: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Lời gọi hàm với một tham số mặc định:

Gán giá trị mặc địnhcho tham số

Bài 3: Lập trình PHP (phần 1) 21

Page 22: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Danh sách tham số có chiều dài thay đổi cho phép tạo một hàm làmviệc với số lượng đối số thay đổi

Có thể yêu cầu một số lượng tối thiểu các đối số bằng cách sử dụngtham số dự trữ trong danh sách tham số

Các hàm để làm việc với danh sách tham số có chiều dài thay đổi:

2.1.5. Sử dụngdanh sách tham số có độ dài biến đổi

Danh sách tham số có chiều dài thay đổi cho phép tạo một hàm làmviệc với số lượng đối số thay đổi

Có thể yêu cầu một số lượng tối thiểu các đối số bằng cách sử dụngtham số dự trữ trong danh sách tham số

Các hàm để làm việc với danh sách tham số có chiều dài thay đổi:

Bài 3: Lập trình PHP (phần 1) 22

Page 23: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Hướng dẫn viết hàm với danh sách tham số thay đổi:

Sử dụngdanh sách tham số có độ dài biến đổi

Bài 3: Lập trình PHP (phần 1) 23

Page 24: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Sử dụngdanh sách tham số có độ dài biến đổi

Bài 3: Lập trình PHP (phần 1) 24

Page 25: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Các ứng dụng thường có rất nhiều hàm. Trong trường hợp này, việctổ chức các hàm vào thư viện bên ngoài rất hữu íchMục đích sử dụng thư viện:

Có thể dùng thư viện cho hơn một ứng dụngCác lập trình viên có thể làm việc trên các thư viện khác nhau để giảmthời gian phát triển ứng dụng

Hướng dẫn thiết lập đường dẫn fle chèn:Lưu thư viện trong thư mục riêng để nó có thể được truy cập bởinhiều ứng dụngThêm thư mục này vào đường dẫn fle chèn. Đường dẫn này là mộtdanh sách các thư mục cho phép PHP tìm kiếm các fle chèn

2.2. Khởi tạovà sử dụng thư viện của hàm

Các ứng dụng thường có rất nhiều hàm. Trong trường hợp này, việctổ chức các hàm vào thư viện bên ngoài rất hữu íchMục đích sử dụng thư viện:

Có thể dùng thư viện cho hơn một ứng dụngCác lập trình viên có thể làm việc trên các thư viện khác nhau để giảmthời gian phát triển ứng dụng

Hướng dẫn thiết lập đường dẫn fle chèn:Lưu thư viện trong thư mục riêng để nó có thể được truy cập bởinhiều ứng dụngThêm thư mục này vào đường dẫn fle chèn. Đường dẫn này là mộtdanh sách các thư mục cho phép PHP tìm kiếm các fle chèn

Bài 3: Lập trình PHP (phần 1) 25

Page 26: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Các hàm làm việc với đường dẫn file chèn:

Hướng dẫn lấy đường dẫn file chèn:

Hướng dẫn thiết lập đường dẫn file chèn:

Hướng dẫn chèn một file sau khi đường dẫn file chèn được thiết lập:

Khởi tạovà sử dụng thư viện của hàm

Các hàm làm việc với đường dẫn file chèn:

Hướng dẫn lấy đường dẫn file chèn:

Hướng dẫn thiết lập đường dẫn file chèn:

Hướng dẫn chèn một file sau khi đường dẫn file chèn được thiết lập:

Bài 3: Lập trình PHP (phần 1) 26

Page 27: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Hướng dẫn tạo và sử dụng namespace:Namespace có chứa một nhóm các tên không có trong phạm vi toàncụcNamespace cho phép tổ chức các hàm và sử dụng các tên đã đượcdùng trong namespace toàn cụcCó thể hình dung namespace giống như một thư mục trên máy tính. Vídụ, bạn có thể có hai file cùng tên report.txt miễn là chúng ở các thưmục khác nhau. Tương tự, bạn có thể có hai hàm được đặt tên là showmiễn là chúng ở trong các namespace khác nhau

Khởi tạovà sử dụng thư viện của hàm

Hướng dẫn tạo và sử dụng namespace:Namespace có chứa một nhóm các tên không có trong phạm vi toàncụcNamespace cho phép tổ chức các hàm và sử dụng các tên đã đượcdùng trong namespace toàn cụcCó thể hình dung namespace giống như một thư mục trên máy tính. Vídụ, bạn có thể có hai file cùng tên report.txt miễn là chúng ở các thưmục khác nhau. Tương tự, bạn có thể có hai hàm được đặt tên là showmiễn là chúng ở trong các namespace khác nhau

Bài 3: Lập trình PHP (phần 1) 27

Page 28: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Bạn có thể sử dụng namespace để chứa các hàm trong namespace thayvì sử dụng namespace toàn cục. Điều này giúp bạn tránh được việcđụng độ tên.Trong phạm vi một namespace, bạn có thể đưa vào các hằng số, hàmvà lớp. Trong chương tiếp theo, bạn sẽ tìm hiểu thêm về lớp.Để thực hiện lời gọi tới một hàm trong namespace, viết tên chonamespace, dấu xổ ngược và tên hàm.Để tạo ra một bí danh cho namespace, sử dụng từ khóa use, theo saulà tên namespace, tiếp theo là từ khóa as, sau đó là bí danh

Khởi tạovà sử dụng thư viện của hàm

Bạn có thể sử dụng namespace để chứa các hàm trong namespace thayvì sử dụng namespace toàn cục. Điều này giúp bạn tránh được việcđụng độ tên.Trong phạm vi một namespace, bạn có thể đưa vào các hằng số, hàmvà lớp. Trong chương tiếp theo, bạn sẽ tìm hiểu thêm về lớp.Để thực hiện lời gọi tới một hàm trong namespace, viết tên chonamespace, dấu xổ ngược và tên hàm.Để tạo ra một bí danh cho namespace, sử dụng từ khóa use, theo saulà tên namespace, tiếp theo là từ khóa as, sau đó là bí danh

Bài 3: Lập trình PHP (phần 1) 28

Page 29: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Hướng dẫn tạo namespace trong file:

Khởi tạovà sử dụng thư viện của hàm

Bài 3: Lập trình PHP (phần 1) 29

Page 30: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Hướng dẫn sử dụng các hàm được xác định trong namespace:

Khởi tạovà sử dụng thư viện của hàm

Hướng dẫn sử dụng các hàm được xác định trong namespace:

Bài 3: Lập trình PHP (phần 1) 30

Page 31: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Trong phần này có các nội dung:3.1. Khởi tạo và sử dụng lớp3.2. Viết hằng, thuộc tính và phương thức của lớp3.3. Một số kỹ năng bổ sung3.4. Làm việc với kế thừa

3. Khởi tạo và sử dụng đối tượng

Bài 3: Lập trình PHP (phần 1) 31

Page 32: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Trong phần này có các nội dung:3.1.1. Viết thuộc tính3.1.2. Viết hàm tạo và hàm hủy3.1.3. Viết phương thức3.1.4. Khởi tạo và sử dụng đối tượng

3.1. Khởi tạo và sử dụng lớp

Trong phần này có các nội dung:3.1.1. Viết thuộc tính3.1.2. Viết hàm tạo và hàm hủy3.1.3. Viết phương thức3.1.4. Khởi tạo và sử dụng đối tượng

Bài 3: Lập trình PHP (phần 1) 32

Page 33: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Chia làm ba loại chính:Public: có thể truy cập trực tiếp bởi đoạn mã bên ngoài lớpPrivate: không thể truy cập trực tiếp bởi đoạn mã bên ngoài lớpProtected: không thể truy cập trực tiếp bởi đoạn mã bên ngoài lớp

Mặc định thuộc tính là publicCó thể đặt giá trị ban đầu cho thuộc tính là số, chuỗi, Bool hoặcNULLViết nhiều thuộc tính trên cùng một dòng: dùng dấu phẩy “,” đểphân tách các thuộc tínhCú pháp:

3.1.1. Viết thuộc tính

Chia làm ba loại chính:Public: có thể truy cập trực tiếp bởi đoạn mã bên ngoài lớpPrivate: không thể truy cập trực tiếp bởi đoạn mã bên ngoài lớpProtected: không thể truy cập trực tiếp bởi đoạn mã bên ngoài lớp

Mặc định thuộc tính là publicCó thể đặt giá trị ban đầu cho thuộc tính là số, chuỗi, Bool hoặcNULLViết nhiều thuộc tính trên cùng một dòng: dùng dấu phẩy “,” đểphân tách các thuộc tínhCú pháp:

Bài 3: Lập trình PHP (phần 1) 33

Page 34: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Hướng dẫn viết mã thuộc tính:

Viết thuộc tính

Bài 3: Lập trình PHP (phần 1) 34

Page 35: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Hàm tạo (phương thức khởi tạo): phương thức đặc biệt được thựchiện khi một đối tượng mới được tạo ra từ lớp. Phương thức nàythường khởi tạo các thuộc tính của đối tượngCú pháp:

Hàm hủy (phương thức hủy): phương thức đặc biệt được thực hiệnkhi một đối tượng không còn được sử dụng. Nói cách khác, nó đượcthực hiện khi không có biến tham chiếu đến đối tượngCú pháp:

3.1.2. Viết hàm tạo và hàm hủy

Hàm tạo (phương thức khởi tạo): phương thức đặc biệt được thựchiện khi một đối tượng mới được tạo ra từ lớp. Phương thức nàythường khởi tạo các thuộc tính của đối tượngCú pháp:

Hàm hủy (phương thức hủy): phương thức đặc biệt được thực hiệnkhi một đối tượng không còn được sử dụng. Nói cách khác, nó đượcthực hiện khi không có biến tham chiếu đến đối tượngCú pháp:

Bài 3: Lập trình PHP (phần 1) 35

Page 36: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Biến đặc biệt $this lưu một tham chiếu đến các đối tượng hiện tại,cho phép truy cập vào các thuộc tính và phương thức của đối tượnghiện tạiToán tử truy cập đối tượng (->) cung cấp truy cập đến thuộc tính vàphương thức của đối tượngVí dụ:

Viết hàm tạo và hàm hủy

Biến đặc biệt $this lưu một tham chiếu đến các đối tượng hiện tại,cho phép truy cập vào các thuộc tính và phương thức của đối tượnghiện tạiToán tử truy cập đối tượng (->) cung cấp truy cập đến thuộc tính vàphương thức của đối tượngVí dụ:

Bài 3: Lập trình PHP (phần 1) 36

Page 37: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Cú pháp:

Mặc định, thuộc tính của phương thức là public

Ví dụ:

3.1.3. Viết phương thức

Cú pháp:

Mặc định, thuộc tính của phương thức là public

Ví dụ:

Bài 3: Lập trình PHP (phần 1) 37

Page 38: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Viết phương thức

Bài 3: Lập trình PHP (phần 1) 38

Page 39: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Đối tượng: thực thể (instance) của lớpCú pháp khởi tạo đối tượng:

Ví dụ:

Cú pháp truy cập thuộc tính của đối tượng:

Ví dụ:

3.1.4. Khởi tạo và sử dụng đối tượng

Đối tượng: thực thể (instance) của lớpCú pháp khởi tạo đối tượng:

Ví dụ:

Cú pháp truy cập thuộc tính của đối tượng:

Ví dụ:

Bài 3: Lập trình PHP (phần 1) 39

Page 40: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Cú pháp truy cập phương thức của đối tượng:

Ví dụ:

Nếu một phương thức trả về đối tượng thì có thể sử dụng hàm hoặcphương thức làm tham chiếu đến đối tượng và tiếp tục truy cập vàocác thuộc tính và phương thức của đối tượng trả vềVí dụ:

Khởi tạo và sử dụng đối tượng

Cú pháp truy cập phương thức của đối tượng:

Ví dụ:

Nếu một phương thức trả về đối tượng thì có thể sử dụng hàm hoặcphương thức làm tham chiếu đến đối tượng và tiếp tục truy cập vàocác thuộc tính và phương thức của đối tượng trả vềVí dụ:

Bài 3: Lập trình PHP (phần 1) 40

Page 41: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Trong phần này có các nội dung:3.2.1. Viết hằng của lớp3.2.2. Viết thuộc tính và phương thức tĩnh

3.2. Viết hằng, thuộc tínhvà phương thức của lớp

Bài 3: Lập trình PHP (phần 1) 41

Page 42: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Hằng của lớp là giá trị không đổi thuộc về lớp, không phải đối tượngđược tạo từ lớpCú pháp truy cập vào một hằng của lớp:

Truy cập bên trong lớp:Truy cập bên ngoài lớp:

Thuộc tính của hằng của lớp luôn là publicHằng của lớp thường được sử dụng để xác định tập hợp các tùychọn được truyền cho phương thức trong lớp

3.2.1. Viết hằng của lớp

Hằng của lớp là giá trị không đổi thuộc về lớp, không phải đối tượngđược tạo từ lớpCú pháp truy cập vào một hằng của lớp:

Truy cập bên trong lớp:Truy cập bên ngoài lớp:

Thuộc tính của hằng của lớp luôn là publicHằng của lớp thường được sử dụng để xác định tập hợp các tùychọn được truyền cho phương thức trong lớp

Bài 3: Lập trình PHP (phần 1) 42

Page 43: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Ví dụ:

Viết hằng của lớp

Bài 3: Lập trình PHP (phần 1) 43

Page 44: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Thuộc tính/phương thức tĩnh (static): thuộc tính/phương thức thuộcvề một lớp, chứ không thuộc đối tượng được tạo ra từ lớp.Cú pháp khai báo:

Thuộc tính tĩnh:

Phương thức tĩnh:

Trong ứng dụng PHP, mỗi người dùng có một không gian mã riêngnên thuộc tính và phương thức tĩnh không được chia sẻ giữa nhiềungười dùng với nhau

3.2.2. Viết thuộc tínhvà phương thức tĩnh

Thuộc tính/phương thức tĩnh (static): thuộc tính/phương thức thuộcvề một lớp, chứ không thuộc đối tượng được tạo ra từ lớp.Cú pháp khai báo:

Thuộc tính tĩnh:

Phương thức tĩnh:

Trong ứng dụng PHP, mỗi người dùng có một không gian mã riêngnên thuộc tính và phương thức tĩnh không được chia sẻ giữa nhiềungười dùng với nhau

Bài 3: Lập trình PHP (phần 1) 44

Page 45: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Truy cập và thuộc tính/phương thức tĩnh:Bên trong lớp:

Bên ngoài lớp:

Ví dụ:

Viết thuộc tínhvà phương thức tĩnh

Truy cập và thuộc tính/phương thức tĩnh:Bên trong lớp:

Bên ngoài lớp:

Ví dụ:

Bài 3: Lập trình PHP (phần 1) 45

Page 46: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Trong phần này có các nội dung:3.1.1. Lặp qua các thuộc tính của đối tượng3.1.2. Sao chép và so sánh đối tượng3.1.3. Kiểm tra đối tượng

3.3. Một số kỹ năng bổ sung

Bài 3: Lập trình PHP (phần 1) 46

Page 47: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Dùng vòng lặp foreach để duyệt từng thuộc tính của đối tượngCú pháp:

Ví dụ:

3.1.1. Lặp quacác thuộc tính của đối tượng

Dùng vòng lặp foreach để duyệt từng thuộc tính của đối tượngCú pháp:

Ví dụ:

Bài 3: Lập trình PHP (phần 1) 47

Page 48: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Cú pháp tạo bản sao đối tượng và gán cho một biến:

Cần phân biệt sao chép và tham chiếu đối tượngVí dụ:

3.1.2. Sao chép và so sánh đối tượng

Bài 3: Lập trình PHP (phần 1) 48

Page 49: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Sử dụng toán tử so sánh bằng (==) để kiểm tra xem cả hai đốitượng có phải là thể hiện của cùng một lớp và có cùng giá trị chomọi thuộc tính khôngSử dụng toán tử định danh (===) để kiểm tra xem cả hai biến đốitượng có tham chiếu tới cùng một thể hiện của đối tượng khôngVí dụ:

Sao chép và so sánh đối tượng

Sử dụng toán tử so sánh bằng (==) để kiểm tra xem cả hai đốitượng có phải là thể hiện của cùng một lớp và có cùng giá trị chomọi thuộc tính khôngSử dụng toán tử định danh (===) để kiểm tra xem cả hai biến đốitượng có tham chiếu tới cùng một thể hiện của đối tượng khôngVí dụ:

Bài 3: Lập trình PHP (phần 1) 49

Page 50: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Các hàm kiểm tra một đối tượng:

Ví dụ:

3.1.3. Kiểm tra đối tượng

Các hàm kiểm tra một đối tượng:

Ví dụ:

Bài 3: Lập trình PHP (phần 1) 50

Page 51: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Trong phần này có các nội dung:3.4.1. Kế thừa một lớp3.4.2. Sử dụng mức truy xuất protected3.4.3. Tạo lớp và phương thức tổng quát3.4.4. Tạo lớp và phương thức final3.4.5. Làm việc với giao diện

3.4. Khởi tạo và sử dụng đối tượng

Bài 3: Lập trình PHP (phần 1) 51

Page 52: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Kế thừa một lớp: tạo ra một lớp mới (gọi là lớp con/lớp dẫn xuất/lớpphụ) có các thuộc tính và phương thức của lớp cũ (gọi là lớpcha/lớp cơ sở)Cú pháp kế thừa:

Lớp con có thể mở rộng lớp cha bằng cách thêm các thuộc tính vàphương thức mớiLớp con có thể ghi đè lên phương thức từ lớp cha bằng phiên bảnphương thức của riêng mìnhLớp con có thể gọi phương thức từ lớp cha theo cú pháp:

3.4.1. Kế thừa một lớp

Kế thừa một lớp: tạo ra một lớp mới (gọi là lớp con/lớp dẫn xuất/lớpphụ) có các thuộc tính và phương thức của lớp cũ (gọi là lớpcha/lớp cơ sở)Cú pháp kế thừa:

Lớp con có thể mở rộng lớp cha bằng cách thêm các thuộc tính vàphương thức mớiLớp con có thể ghi đè lên phương thức từ lớp cha bằng phiên bảnphương thức của riêng mìnhLớp con có thể gọi phương thức từ lớp cha theo cú pháp:

Bài 3: Lập trình PHP (phần 1) 52

Page 53: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Ví dụ:

Kế thừa một lớp

Bài 3: Lập trình PHP (phần 1) 53

Page 54: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Phân biệt các mức truy xuất:

Ví dụ:

3.4.2. Sử dụngmức truy xuất protected

Phân biệt các mức truy xuất:

Ví dụ:

Bài 3: Lập trình PHP (phần 1) 54

Page 55: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Lớp cụ thể (concrete): lớp có thể được sử dụng để tạo đối tượngLớp tổng quát (abstract): lớp không thể sử dụng để tạo đối tượngmà thường đóng vai trò là lớp cha cho các lớp khácPhương thức tổng quát: xác định tên và các tham số cho phươngthức nhưng không cung cấp khối mã cài đặt phương thứcKhông bắt buộc phải có lớp tổng quát để tạo phương thức tổngquátLớp con cụ thể của lớp tổng quát phải cung cấp cài đặt cho tất cảcác phương thức tổng quát trong lớp tổng quátCú pháp khai báo lớp và phương thức tổng quát: thêm từ khóaabstract vào trước từ khóa class/function

3.4.3. Tạo lớp vàphương thức tổng quát

Lớp cụ thể (concrete): lớp có thể được sử dụng để tạo đối tượngLớp tổng quát (abstract): lớp không thể sử dụng để tạo đối tượngmà thường đóng vai trò là lớp cha cho các lớp khácPhương thức tổng quát: xác định tên và các tham số cho phươngthức nhưng không cung cấp khối mã cài đặt phương thứcKhông bắt buộc phải có lớp tổng quát để tạo phương thức tổngquátLớp con cụ thể của lớp tổng quát phải cung cấp cài đặt cho tất cảcác phương thức tổng quát trong lớp tổng quátCú pháp khai báo lớp và phương thức tổng quát: thêm từ khóaabstract vào trước từ khóa class/function

Bài 3: Lập trình PHP (phần 1) 55

Page 56: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Ví dụ:

Tạo lớp vàphương thức tổng quát

Bài 3: Lập trình PHP (phần 1) 56

Page 57: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Phương thức final: không thể bị ghi đè bởi phương thức trong lớpcon. Do đó, tất cả các lớp con phải sử dụng phiên bản cuối cùngcủa phương thức nàyLớp final: không thể được kế thừa bởi lớp conCú pháp tạo lớp và phương thức final: thêm từ khóa final vào trướctừ khóa class/functionHướng dẫn cách làm một lớp không thể bị kế thừa:

3.4.4. Tạo lớp và phương thức final

Phương thức final: không thể bị ghi đè bởi phương thức trong lớpcon. Do đó, tất cả các lớp con phải sử dụng phiên bản cuối cùngcủa phương thức nàyLớp final: không thể được kế thừa bởi lớp conCú pháp tạo lớp và phương thức final: thêm từ khóa final vào trướctừ khóa class/functionHướng dẫn cách làm một lớp không thể bị kế thừa:

Bài 3: Lập trình PHP (phần 1) 57

Page 58: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Hướng dẫn cách tránh tình trạng ghi đè phương thức:

Tạo lớp và phương thức final

Bài 3: Lập trình PHP (phần 1) 58

Page 59: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Giao diện (interface): tập các phương thức có thể được cài đặt bởimột lớpGiao diện chỉ cung cấp tên phương thức và danh sách tham sốCác phương thức trong giao diện phải là publicLớp thực thi giao thức phải cung cấp cài đặt cho từng phương thứcđược định nghĩa bởi giao diện. Từ khóa thực thi là implementGiao diện có thể định nghĩa các hằng có hiệu lực với bất kỳ lớp nàocài đặt giao diệnMột lớp có thể thực thi nhiều giao diệnCú pháp khai báo giao diện:

3.4.5. Làm việc với giao diện

Giao diện (interface): tập các phương thức có thể được cài đặt bởimột lớpGiao diện chỉ cung cấp tên phương thức và danh sách tham sốCác phương thức trong giao diện phải là publicLớp thực thi giao thức phải cung cấp cài đặt cho từng phương thứcđược định nghĩa bởi giao diện. Từ khóa thực thi là implementGiao diện có thể định nghĩa các hằng có hiệu lực với bất kỳ lớp nàocài đặt giao diệnMột lớp có thể thực thi nhiều giao diệnCú pháp khai báo giao diện:

Bài 3: Lập trình PHP (phần 1) 59

Page 60: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Ví dụ:

Làm việc với giao diện

Bài 3: Lập trình PHP (phần 1) 60

Page 61: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Khi gọi một hàm, các đối số trong danh sách đối số phảiTheo đúng thứ tự trong danh sách tham sốTương thích về kiểu dữ liệu

Đối số của hàm được truyền theo giá trị (mặc định) và theo thamchiếuBiến được định nghĩa bên trong một hàm thì có phạm vi cục bộĐường dẫn file chèn chỉ định thư mục để tìm kiếm các file chènTrong PHP tất cả các hàm đều được lưu trong namespace toàn cục.Phương thức khởi tạo được sử dụng để tạo đối tượng từ lớpPhương thức hủy được thực thi khi một đối tượng không còn đượcsử dụng

Tổng kết bài học

Khi gọi một hàm, các đối số trong danh sách đối số phảiTheo đúng thứ tự trong danh sách tham sốTương thích về kiểu dữ liệu

Đối số của hàm được truyền theo giá trị (mặc định) và theo thamchiếuBiến được định nghĩa bên trong một hàm thì có phạm vi cục bộĐường dẫn file chèn chỉ định thư mục để tìm kiếm các file chènTrong PHP tất cả các hàm đều được lưu trong namespace toàn cục.Phương thức khởi tạo được sử dụng để tạo đối tượng từ lớpPhương thức hủy được thực thi khi một đối tượng không còn đượcsử dụng

Bài 3: Lập trình PHP (phần 1) 61

Page 62: Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT

Thuộc tính public có thể được truy cập trực tiếp bởi đoạn mã bênngoài lớp còn private và protected thì không (protected được truycập bởi lớp kế thừa)Thuộc tính/phương thức tĩnh không thuộc về đối tượng được tạo ratừ lớp đóKế thừa cung cấp cách thức tạo ra lớp mới dựa trên một lớp đangtồn tạiLớp tổng quát không thể được sử dụng để tạo đối tượng.Phương thức final không thể được ghi đè bởi phương thức trong lớpcon. Lớp final không thể được thừa kế bởi lớp con.Giao diện định nghĩa một tập hợp các phương thức có thể đượcthực thi bởi lớp

Tổng kết bài học

Thuộc tính public có thể được truy cập trực tiếp bởi đoạn mã bênngoài lớp còn private và protected thì không (protected được truycập bởi lớp kế thừa)Thuộc tính/phương thức tĩnh không thuộc về đối tượng được tạo ratừ lớp đóKế thừa cung cấp cách thức tạo ra lớp mới dựa trên một lớp đangtồn tạiLớp tổng quát không thể được sử dụng để tạo đối tượng.Phương thức final không thể được ghi đè bởi phương thức trong lớpcon. Lớp final không thể được thừa kế bởi lớp con.Giao diện định nghĩa một tập hợp các phương thức có thể đượcthực thi bởi lớp

Bài 3: Lập trình PHP (phần 1) 62