SlideShare a Scribd company logo
1 of 62
Download to read offline
Bài 3
Lập trình PHP(phần 1)
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
Bài 3: Lập trình PHP (phần 1) 2
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
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
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
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
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
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;
}
Bài 3: Lập trình PHP (phần 1) 7
Ví dụ:
Viết cấu trúc lựa chọn
Bài 3: Lập trình PHP (phần 1) 8
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. Sử dụng 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
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. Sử dụng 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
Bài 3: Lập trình PHP (phần 1) 9
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
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
Bài 3: Lập trình PHP (phần 1) 10
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
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
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
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ố
Bài 3: Lập trình PHP (phần 1) 13
Đố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
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
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)
Bài 3: Lập trình PHP (phần 1) 15
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
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
Bài 3: Lập trình PHP (phần 1) 16
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
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
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ố
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
Bài 3: Lập trình PHP (phần 1) 19
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
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
Danh sách tham số có chiều dài thay đổ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ó chiều dài thay đổi:
2.1.5. Sử dụng
danh 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à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ó chiều dài thay đổi:
Bài 3: Lập trình PHP (phần 1) 22
Hướng dẫn viết hàm với danh sách tham số thay đổ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
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
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 fle 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 fle 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 fle chèn
2.2. Khởi tạo
và 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ệ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 fle 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 fle 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 fle chèn
Bài 3: Lập trình PHP (phần 1) 25
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ạo
và 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
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
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
Bài 3: Lập trình PHP (phần 1) 27
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ạ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
Bài 3: Lập trình PHP (phần 1) 28
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
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
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
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
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
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
Bài 3: Lập trình PHP (phần 1) 32
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
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:
Bài 3: Lập trình PHP (phần 1) 33
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
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
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:
Bài 3: Lập trình PHP (phần 1) 35
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
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ụ:
Bài 3: Lập trình PHP (phần 1) 36
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
Viết phương thức
Bài 3: Lập trình PHP (phần 1) 38
Đố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
Đố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ụ:
Bài 3: Lập trình PHP (phần 1) 39
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
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ụ:
Bài 3: Lập trình PHP (phần 1) 40
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
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
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
Bài 3: Lập trình PHP (phần 1) 42
Ví dụ:
Viết hằng của lớp
Bài 3: Lập trình PHP (phần 1) 43
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
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
Bài 3: Lập trình PHP (phần 1) 44
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
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
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
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
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ụ:
Bài 3: Lập trình PHP (phần 1) 47
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
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
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ụ:
Bài 3: Lập trình PHP (phần 1) 49
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
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
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
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:
Bài 3: Lập trình PHP (phần 1) 52
Ví dụ:
Kế thừa một lớp
Bài 3: Lập trình PHP (phần 1) 53
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
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
Lớp cụ thể (concrete): lớp có thể được sử dụng để tạo đối tượng
Lớp tổng quát (abstract): 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: 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
Lớp cụ thể (concrete): lớp có thể được sử dụng để tạo đối tượng
Lớp tổng quát (abstract): 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: 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
Bài 3: Lập trình PHP (phần 1) 55
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
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
Lớp final: không thể được kế thừa bởi lớp con
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
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
Lớp final: không thể được kế thừa bởi lớp con
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:
Bài 3: Lập trình PHP (phần 1) 57
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
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 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à 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
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 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à 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:
Bài 3: Lập trình PHP (phần 1) 59
Ví dụ:
Làm việc với giao diện
Bài 3: Lập trình PHP (phần 1) 60
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
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
Bài 3: Lập trình PHP (phần 1) 61
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.
Phương thức final không thể được ghi đè bởi phương thức trong lớp
con. 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ể được
thự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ê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.
Phương thức final không thể được ghi đè bởi phương thức trong lớp
con. 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ể được
thực thi bởi lớp
Bài 3: Lập trình PHP (phần 1) 62

More Related Content

What's hot

Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPTBài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPTMasterCode.vn
 
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTBài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTMasterCode.vn
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webMasterCode.vn
 
Tài liệu lập trình PHP từ căn bản đến nâng cao
Tài liệu lập trình PHP từ căn bản đến nâng caoTài liệu lập trình PHP từ căn bản đến nâng cao
Tài liệu lập trình PHP từ căn bản đến nâng caoZendVN
 
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webBài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webMasterCode.vn
 
Bài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPT
Bài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPTBài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPT
Bài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPTMasterCode.vn
 
Tài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xTài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xZendVN
 
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHuy Vũ
 
Học Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkHọc Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkKhanhPham
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVCMasterCode.vn
 
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2KhanhPham
 

What's hot (20)

Web201 slide 4
Web201   slide 4Web201   slide 4
Web201 slide 4
 
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPTBài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
 
Web201 slide 6
Web201   slide 6Web201   slide 6
Web201 slide 6
 
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTBài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
 
Web3012 slide 8
Web3012   slide 8Web3012   slide 8
Web3012 slide 8
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
 
Tài liệu lập trình PHP từ căn bản đến nâng cao
Tài liệu lập trình PHP từ căn bản đến nâng caoTài liệu lập trình PHP từ căn bản đến nâng cao
Tài liệu lập trình PHP từ căn bản đến nâng cao
 
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webBài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
 
Web203 slide 5
Web203   slide 5Web203   slide 5
Web203 slide 5
 
Web201 slide 5
Web201   slide 5Web201   slide 5
Web201 slide 5
 
Web301 slide 4
Web301   slide 4Web301   slide 4
Web301 slide 4
 
Bài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPT
Bài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPTBài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPT
Bài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPT
 
Web301 slide 3
Web301   slide 3Web301   slide 3
Web301 slide 3
 
Tài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xTài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.x
 
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
 
Học Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkHọc Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend Framework
 
Web301 slide 1
Web301   slide 1Web301   slide 1
Web301 slide 1
 
Web3012 assignment
Web3012   assignmentWeb3012   assignment
Web3012 assignment
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVC
 
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
 

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

Phân tích Confuser 1.9.0.0 - Anti-tamper protection - Bản dịch
Phân tích Confuser 1.9.0.0 - Anti-tamper protection - Bản dịchPhân tích Confuser 1.9.0.0 - Anti-tamper protection - Bản dịch
Phân tích Confuser 1.9.0.0 - Anti-tamper protection - Bản dịchLevis Nickaster
 
Hàm và nạp chồng hàm
Hàm và nạp chồng hàmHàm và nạp chồng hàm
Hàm và nạp chồng hàmLAnhHuy4
 
Hàm (function)
Hàm (function)Hàm (function)
Hàm (function)Son Nguyen
 
Phan2 chuong5 ctrinhcon
Phan2 chuong5 ctrinhconPhan2 chuong5 ctrinhcon
Phan2 chuong5 ctrinhconLy hai
 
Hàm và Chuỗi
Hàm và ChuỗiHàm và Chuỗi
Hàm và Chuỗipnanhvn
 
Tai lieu huong_dan_ve_lap_trinh_php_7512
Tai lieu huong_dan_ve_lap_trinh_php_7512Tai lieu huong_dan_ve_lap_trinh_php_7512
Tai lieu huong_dan_ve_lap_trinh_php_7512lekytho
 
Lap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoLap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoHuy Nguyễn
 
Lap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoLap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoBác Luân
 
lap trinh c Phan2 chuong5
 lap trinh c Phan2 chuong5 lap trinh c Phan2 chuong5
lap trinh c Phan2 chuong5thanhyu
 
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPTBÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPTMasterCode.vn
 
Lect04 functions
Lect04 functionsLect04 functions
Lect04 functionsHồ Lợi
 

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

Chuong 04 ham
Chuong 04 hamChuong 04 ham
Chuong 04 ham
 
Session 15
Session 15Session 15
Session 15
 
Session 15
Session 15Session 15
Session 15
 
Phân tích Confuser 1.9.0.0 - Anti-tamper protection - Bản dịch
Phân tích Confuser 1.9.0.0 - Anti-tamper protection - Bản dịchPhân tích Confuser 1.9.0.0 - Anti-tamper protection - Bản dịch
Phân tích Confuser 1.9.0.0 - Anti-tamper protection - Bản dịch
 
Hàm và nạp chồng hàm
Hàm và nạp chồng hàmHàm và nạp chồng hàm
Hàm và nạp chồng hàm
 
Hàm (function)
Hàm (function)Hàm (function)
Hàm (function)
 
Asp
AspAsp
Asp
 
Phan2 chuong5 ctrinhcon
Phan2 chuong5 ctrinhconPhan2 chuong5 ctrinhcon
Phan2 chuong5 ctrinhcon
 
Hàm và Chuỗi
Hàm và ChuỗiHàm và Chuỗi
Hàm và Chuỗi
 
Tai lieu huong_dan_ve_lap_trinh_php_7512
Tai lieu huong_dan_ve_lap_trinh_php_7512Tai lieu huong_dan_ve_lap_trinh_php_7512
Tai lieu huong_dan_ve_lap_trinh_php_7512
 
Lap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoLap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_cao
 
Lap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoLap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_cao
 
lap trinh c Phan2 chuong5
 lap trinh c Phan2 chuong5 lap trinh c Phan2 chuong5
lap trinh c Phan2 chuong5
 
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPTBÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
 
Chuong 01
Chuong 01Chuong 01
Chuong 01
 
Chuong 01 mo dau
Chuong 01 mo dauChuong 01 mo dau
Chuong 01 mo dau
 
Ltc 6
Ltc 6Ltc 6
Ltc 6
 
hàm_nocopy.pdf
hàm_nocopy.pdfhàm_nocopy.pdf
hàm_nocopy.pdf
 
Lect04 functions
Lect04 functionsLect04 functions
Lect04 functions
 
Ch assembly
Ch assemblyCh assembly
Ch assembly
 

More from MasterCode.vn

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnMasterCode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnMasterCode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnMasterCode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnMasterCode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnMasterCode.vn
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnMasterCode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnMasterCode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnMasterCode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnMasterCode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnMasterCode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnMasterCode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnMasterCode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnMasterCode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 

More from MasterCode.vn (20)

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vn
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
 

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

  • 1. Bài 3 Lập trình PHP(phần 1)
  • 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 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 Bài 3: Lập trình PHP (phần 1) 2
  • 3. 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
  • 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 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
  • 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 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; } 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. Sử dụng 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 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. Sử dụng 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 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 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 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 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ố 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 Đố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
  • 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 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) 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 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 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 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
  • 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 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
  • 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ố 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 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ó chiều dài thay đổ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ó chiều dài thay đổi: 2.1.5. Sử dụng danh 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à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ó chiều dài thay đổ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ố thay đổ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 fle 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 fle 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 fle chèn 2.2. Khởi tạo và 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ệ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 fle 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 fle 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 fle chèn 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 đường dẫn file chèn được thiết lập: Khởi tạo và 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
  • 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 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 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ạ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 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 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
  • 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 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 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 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: 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 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: 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 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ụ: 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 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
  • 38. Viết phương thức Bài 3: Lập trình PHP (phần 1) 38
  • 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 Đố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ụ: 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 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ụ: 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 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 Bài 3: Lập trình PHP (phần 1) 42
  • 43. Ví dụ: Viết hằng của lớp Bài 3: Lập trình PHP (phần 1) 43
  • 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 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 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 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
  • 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 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ụ: 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 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ụ: 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 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
  • 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 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: Bài 3: Lập trình PHP (phần 1) 52
  • 53. Ví dụ: Kế thừa một lớp Bài 3: Lập trình PHP (phần 1) 53
  • 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 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
  • 55. Lớp cụ thể (concrete): lớp có thể được sử dụng để tạo đối tượng Lớp tổng quát (abstract): 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: 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 Lớp cụ thể (concrete): lớp có thể được sử dụng để tạo đối tượng Lớp tổng quát (abstract): 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: 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 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. 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 Lớp final: không thể được kế thừa bởi lớp con 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 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 Lớp final: không thể được kế thừa bởi lớp con 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: 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 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à 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 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 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à 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: 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 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 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. Phương thức final không thể được ghi đè bởi phương thức trong lớp con. 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ể được thự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ê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. Phương thức final không thể được ghi đè bởi phương thức trong lớp con. 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ể được thực thi bởi lớp Bài 3: Lập trình PHP (phần 1) 62