2. 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
Hệ thống bài cũ
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 2
3. Nội dung bài học
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 3
1. Viết câu lệnh điều khiển
2. Khởi tạo và sử dụng hàm
3. Khởi tạo và sử dụng đối tượng
4. Trong phần này có các nội dung:
1.1. Viết mã cho biểu thức điều kiện
1.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
5. 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
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 5
6. Sử dụng câu lệnh if else: có thể viết rời else và if hoặc viết liền
elseif
Sử 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
7. Sử dụng câu lệnh switch case:
Rất hữu dụng khi lập trình tầng controller
Cú 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
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 7
8. Ví dụ:
Viết cấu trúc lựa chọn
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 8
9. 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àm
2.1.2. Truyền tham số theo giá trị và tham chiếu
2.1.3. Tìm hiểu về phạm vi hoạt động của biến
2.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
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 9
10. 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 return
Khi thực hiện lời gọi hàm, các đối số trong danh sách đối số phải
theo 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
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 10
11. 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
12. 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
13. 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ới
hà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ực
sự thay đổi các đối số ban đầu. Cú pháp: viết ký hiệu ‘&’ trước tham
số
2.1.2. Truyền tham số
theo giá trị và tham chiếu
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 13
14. Đố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
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 14
15. 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ục
Chỉ 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ực
trong 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
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 15
16. Truy cập một biến toàn cục từ bên trong hàm: sử dụng câu lệnh
toàn cục để nhập một biến từ phạm vi toàn cục sang phạm vi cục bộ
Nhận tất cả các biến được lưu trong phạm vi toàn cục: sử dụng
mả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
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 16
17. 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
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 17
18. 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
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 18
19. 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ặc
là 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 định
cho tham số
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 19
20. Hướng dẫn gán giá trị mặc định cho tham số:
Gán giá trị mặc định
cho tham số
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 20
21. Lời gọi hàm với một tham số mặc định:
Gán giá trị mặc định
cho tham số
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 21
22. Danh sách tham số có độ dài biến đổi cho phép tạo một hàm làm
việ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ụng
tham 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ó độ dài biến đổi:
2.1.5. Sử dụng
danh sách tham số có độ dài biến đổi
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 22
23. Hướng dẫn viết hàm với danh sách tham số có độ dài biến đổi:
Sử dụng
danh sách tham số có độ dài biến đổi
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 23
24. Sử dụng
danh sách tham số có độ dài biến đổi
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 24
25. Các ứng dụng thường có rất nhiều hàm. Trong trường hợp này, việc
tổ chức các hàm vào thư viện bên ngoài rất hữu ích
Mục đích sử dụng thư viện:
Có thể dùng thư viện cho hơn một ứng dụng
Các lập trình viên có thể làm việc trên các thư viện khác nhau để giảm
thời gian phát triển ứng dụng
Hướng dẫn thiết lập đường dẫn file chèn:
Lưu thư viện trong thư mục riêng để nó có thể được truy cập bởi
nhiều ứng dụng
Thêm thư mục này vào đường dẫn file chèn. Đường dẫn này là một
danh sách các thư mục cho phép PHP tìm kiếm các file chèn
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) 25
26. 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 thiết lập đường dẫn:
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) 26
27. 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àn
cục
Namespace cho phép tổ chức các hàm và sử dụng các tên đã được
dùng trong namespace toàn cục
Có 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à show
miễn là chúng ở trong các namespace khác nhau
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) 27
28. Bạn có thể sử dụng namespace để chứa các hàm trong namespace thay
vì 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àm
và 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 cho
namespace, 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 sau
là tên namespace, tiếp theo là từ khóa as, sau đó là bí danh
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) 28
29. Hướng dẫn tạo namespace trong file:
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) 29
30. Hướng dẫn sử dụng các hàm được xác định trong namespace:
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) 30
31. Trong phần này có các nội dung:
3.1. Khởi tạo và sử dụng lớp
3.2. Viết hằng, thuộc tính và phương thức của lớp
3.3. Một số kỹ năng bổ sung
3.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
32. Trong phần này có các nội dung:
3.1.1. Viết thuộc tính
3.1.2. Viết hàm tạo và hàm hủy
3.1.3. Viết phương thức
3.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
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 32
33. 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ớp
Private: không thể truy cập trực tiếp bởi đoạn mã bên ngoài lớp
Protected: 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à public
Có thể đặt giá trị ban đầu cho thuộc tính là số, chuỗi, Bool hoặc
NULL
Viế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ính
Cú pháp:
3.1.1. Viết thuộc tính
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 33
34. 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
35. Hàm tạo (phương thức khởi tạo): phương thức đặc biệt được thực
hiện khi một đối tượng mới được tạo ra từ lớp. Phương thức này
thường khởi tạo các thuộc tính của đối tượng
Cú pháp:
Hàm hủy (phương thức hủy): phương thức đặc biệt được thực hiện
khi một đối tượng không còn được sử dụng. Nói cách khác, nó được
thực hiện khi không có biến tham chiếu đến đối tượng
Cú pháp:
3.1.2. Viết hàm tạo và hàm hủy
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 35
36. 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ượng
hiện tại
Toá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ượng
Ví dụ:
Viết hàm tạo và hàm hủy
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 36
37. 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
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 37
39. Đối tượng: thực thể (instance) của lớp
Cú 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
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 39
40. 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ặc
phương thức làm tham chiếu đến đối tượng và tiếp tục truy cập vào
cá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
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 40
41. Trong phần này có các nội dung:
3.2.1. Viết hằng của lớp
3.2.2. Viết thuộc tính và phương thức tĩnh
3.2. Viết hằng, thuộc tính
và phương thức của lớp
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 41
42. 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ớp
Cú 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à public
Hằng của lớp thường được sử dụng để xác định tập hợp các tùy
chọn được truyền cho phương thức trong lớp
3.2.1. Viết hằng của lớp
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 42
44. Thuộc tính/phương thức tĩnh (static): thuộc tính/phương thức thuộc
về 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êng
nên thuộc tính và phương thức tĩnh không được chia sẻ giữa nhiều
người dùng với nhau
3.2.2. Viết thuộc tính
và phương thức tĩnh
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 44
45. 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ính
và phương thức tĩnh
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 45
46. 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ượng
3.1.2. Sao chép và so sánh đối tượng
3.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
47. Dùng vòng lặp foreach để duyệt từng thuộc tính của đối tượng
Cú pháp:
Ví dụ:
3.1.1. Lặp qua
các thuộc tính của đối tượng
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 47
48. 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ượng
Ví 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
49. Sử dụng toán tử so sánh bằng (==) để kiểm tra xem cả hai đối
tượng có phải là thể hiện của cùng một lớp và có cùng giá trị cho
mọi thuộc tính không
Sử dụng toán tử định danh (===) để kiểm tra xem cả hai biến đối
tượng có tham chiếu tới cùng một thể hiện của đối tượng không
Ví dụ:
Sao chép và so sánh đối tượng
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 49
50. Các hàm kiểm tra một đối tượng:
Ví dụ:
3.1.3. Kiểm tra đối tượng
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 50
51. Trong phần này có các nội dung:
3.4.1. Kế thừa một lớp
3.4.2. Sử dụng mức truy xuất protected
3.4.3. Tạo lớp và phương thức tổng quát
3.4.4. Tạo lớp và phương thức final
3.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
52. 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ớp
phụ) có các thuộc tính và phương thức của lớp cũ (gọi là lớp
cha/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ới
Lớp con có thể ghi đè lên phương thức từ lớp cha bằng phiên bản
phương thức của riêng mình
Lớ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
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 52
54. Phân biệt các mức truy xuất:
Ví dụ:
3.4.2. Sử dụng
mức truy xuất protected
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 54
55. Lớp cụ thể (concrete class): lớp có thể được sử dụng để tạo đối
tượng
Lớp tổng quát (abstract class): lớp không thể sử dụng để tạo đối
tượng mà thường đóng vai trò là lớp cha cho các lớp khác
Phương thức tổng quát (abstract method): xác định tên và các tham
số cho phương thức nhưng không cung cấp khối mã cài đặt phương
thức
Không bắt buộc phải có lớp tổng quát để tạo phương thức tổng
quát
Lớ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át
Cú pháp khai báo lớp và phương thức tổng quát: thêm từ khóa
abstract 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
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 55
56. 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
57. Lớp final: không thể được kế thừa bởi lớp con
Phương thức final: không thể bị ghi đè bởi phương thức trong lớp
con. Do đó, tất cả các lớp con phải sử dụng phiên bản cuối cùng
của phương thức này
Cú pháp tạo lớp và phương thức final: thêm từ khóa final vào trước
từ khóa class/function
Hướ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
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 57
58. 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
59. Giao diện (interface): tập các phương thức có thể được cài đặt bởi
một lớp
Giao 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à public
Lớp thực thi giao diện 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 giao diện là
implement
Giao diện có thể định nghĩa các hằng có hiệu lực với bất kỳ lớp nào
cài đặt giao diện
Một lớp có thể thực thi nhiều giao diện
Cú pháp khai báo giao diện:
3.4.5. Làm việc với giao diện
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 59
60. Ví dụ:
Làm việc với giao diện
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 60
61. Khi gọi một hàm, các đối số trong danh sách đối số phải
Theo đú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 tham
chiếu
Biế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èn
Trong 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ớp
Phương thức hủy được thực thi khi một đối tượng không còn được
sử dụng
Tổng kết bài học
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 61
62. Thuộc tính public có thể được truy cập trực tiếp bởi đoạn mã bên
ngoài lớp còn private và protected thì không (protected được truy
cậ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 ra
từ 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 đang
tồn tại
Lớp tổng quát không thể được sử dụng để tạo đối tượng.
Lớp final không thể được thừa kế bởi lớp con. Phương thức final
không thể được ghi đè bởi phương thức trong lớp con
Giao diện định nghĩa một tập hợp các phương thức có thể được
thực thi bởi lớp
Tổng kết bài học
Bài 3: LẬP TRÌNH PHP (PHẦN 1) 62