1. String
1.1. là 1 kiểu dữ liệu cơ bản trong php
1.2. là dãy liên tiếp các ký tự
1.3. chuỗi không có ký tự gọi là chuỗi rỗng
1.4. đươc bao quanh bởi nháy đơn hoặc nháy kép
1.5. toán tử chuỗi
1.5.1. trong php để nối hai hay nhiều chuỗi ta sử dụng toán tử dấu chấm
1.6. ký tự đặc biệt
1.6.1. là những ký tự mà khi nó được viết vào bên trong chuỗi sẽ có nguy cơ làm ảnh hưởng đến cú pháp chuỗi khiến câu lệnh bị lỗi
1.7. chỉ số của ký tự chuỗi
1.7.1. chuỗi được coi như là mảng của các ký tự vì vậy các ký tự trong chuỗi được thao tác như thao tác với các phần tử trong mảng chứa các tập ký tự
2. Biểu thức chính quy
2.1. thường được gọi là Regex hoặc Regexp
2.2. là thuật toán khớp mẫu mạnh mẽ có thể được thực hiện trong 1 biểu thức nó giúp tiết kiệm thời gian khi xây dựng web động
2.3. là 1 nhóm các ký tự ký hiệu nó được sử dụng để tìm kiếm văn bản (text)
2.4. là 1 mẫu nó tương đồng quy luật với 1 chuỗi từ trái qua phải
2.5. trong lập trình nó được dùng với hàm xử ký chuỗi xử lý văn bản với các tác vụ tìm và thay thế chuỗi kiểm tra tính hợp lệ dữ liệu
2.6. tại sao dùng biểu thức chính quy
2.6.1. đơn giản hoá việc xác định các mẫu dữ liệu trong chuỗi dữ liệu băng cách gọi 1 hàm duy nhất giúp tiết kiệm thời gian lập trình
2.6.2. khi xác định đầu input người dùng nhập
2.6.3. highlight từ khóa tìm kiếm
2.6.4. khi tạo mẫu html tùy chỉnh biểu thức chính quy được sử dụng để xác đình các tag và thay thế chung bắng dữ liệu thực tế
2.6.5. đặc biệt sử dụng biểu thức chinh quy tăng perpormance của chương trình
2.7. khai báo
2.7.1. để khai báo 1 chuỗi Regular Expression / Regex ta chỉ cần khai báo băng ký tự / và kết thúc bằng ký tự /
2.8. Các ký tự dùng trong biểu thức chính quy được gọi là metacharacters
2.9. các hàm
2.9.1. preg_match()
2.9.1.1. so khớp và lấy kết quả của việc so sánh chuỗi dựa vào biểu thức chính quy. Hàm trả về TRUE/FALSE
2.9.2. preg_match_all()
2.9.2.1. ũng tương tự hàm preg_match() ở trên , tuy nhiên hai hàm này khác nhau ở chỗ , hàm preg_match_all() sẽ trả về toàn bộ các giá trị được so sánh khớp, còn hàm preg_match() chỉ trả về giá trị đầu tiên được so sánh khớp.
2.9.3. preg_split()
2.9.3.1. để chia nhỏ chuỗi thành mảng chứa các chuỗi con.
2.9.4. preg_replace()
2.9.4.1. dùng để tìm kiếm và thay thế một chuỗi nào đó khớp với đoạn Regular Expression truyền vào.
3. Hàm
3.1. Thân hàm
3.2. là một khối lệnh thực hiện 1 nhiệm vụ nhất định
3.3. có thể sử dụng lặp đi lặp lại nhiều lần
3.4. không được thực thi ngay tức thì khi nạp trang php
3.5. chỉ thực thi khi được gọi hàm
3.6. khai báo hàm
3.6.1. Tên hàm
3.6.1.1. phải bắt đầu bằng ký tự chữ hoặc dấu gạch dưới
3.6.1.2. không phân biệt chữ hoa và chữ thường
3.6.1.3. nên đặt tên hàm có ý nghĩa
3.6.2. Tham số đầu vào
3.6.2.1. là cơ chế truyền dữ liệu đầu vào vào cho hàm
3.6.2.2. tham số giống như 1 biến
3.6.2.3. có thể truyền 1 hoặc nhiều tham số vào hàm
3.6.2.4. các tham số cách nhau bởi dấu phẩy (,)
3.6.2.5. các tham số được đặt trong () sau tên hàm
3.6.2.6. giá trị
3.6.2.6.1. có thể quy định giá trị mặc định của tham số. khi gọi hàm mà không truyền giá trị vào cho tham số đó thì giá trị mặc định được sử dụng
3.6.2.6.2. trả về
4. Cơ sở dữ liệu
4.1. là nhóm dữ liệu có tổ chức
4.2. là cơ chế lưu trữ dữ liệu
4.3. có nhiều CSDL khác nhau
4.3.1. CSDL phân cấp
4.3.2. CSDL mạng
4.3.3. CSDL quan hệ......
4.4. CSDL quan hệ
4.4.1. la CSDL được xây dựng trên mô hình dữ liệu quan hệ
4.4.2. dữ liệu được tổ chức trong bảng còn được gọi là quan hệ
4.4.3. dòng được gọi là bản ghi hoặc hàng
4.4.4. cột được gọi là thuộc tính hoặc trường
4.4.5. 1 bảng thường lưu trữ dữ liệu của 1 loại thực thể nhất định
5. mảng
5.1. mảng đa chiều
5.1.1. là mảng có các phần tử là mảng
5.1.2. có thể có mảng 2 chiều 3 chiều hoặc nhiều hơn
5.1.3. thì cần nhiều chỉ số để truy xuất đến 1 phần tử
5.1.4. duyêt mảng
5.1.4.1. sử dụng các vòng lặp lồng nhau để duyệt qua tất cả các phần tử của mảng nhiều chiều
5.2. $array
5.2.1. indexarrays
5.2.1.1. mảng 1 chiều với 1 chỉ số
5.2.2. assocltivearrays
5.2.2.1. màng 1 chiều với chỉ số là 1 từ khóa
5.2.3. multidimenslonalalarrays
5.2.4. count() trả về độ dài của mảng
5.2.5. for và foreach để duyệt mang
5.3. là cơ chế giúp lưu trữ nhiều giá trị trong cùng 1 biến
5.4. các giá trị được lưu trong mảng thương là cung loại
5.5. khái niệm
5.5.1. tên mảng tuân thủ các quy tắc như tên biến
5.5.2. phần tử mảng : từng giá trị của mảng
5.5.3. độ dài mảng : số lượng phần tử của mảng
5.5.4. chỉ số : vị trí của các phần tử trong mảng
6. Dữ liệu
6.1. là các mô tả về sự vật hiện tượng sự kiện... được biễu diễn dưới dạng các tài liệu chữ số ảnh âm thanh ....
6.2. dữ liệu rất hữu ích
6.3. việc lưu trữ dữ liệu là rất quan trọng
6.4. có nhiều cơ chế khác nhau để lưu trữ dữ liệu
6.5. khi xử lý dữ liệu thì chúng ta có được thông tin
6.6. dữ liệu và thông tin mang lại cho chúng ta tri thức
7. oop
7.1. static
7.1.1. được sử dụng để khai báo các thuộc tính và phương thức của lớp
7.1.2. các thành phần static trực thuộc lớp thay vi trực thuộc đối tượng
7.1.3. biến static còn được gọi là biến của lớp
7.1.4. phương thức static còn được gọi là phương thức của lớp
7.1.5. truy xuất các thành phần static bằng cách sử dụng lớp hoặc đối tượng
7.1.6. không cần khởi tạo vẫn có thể sử dụng các thành phần static
7.2. setter
7.3. getter
7.4. kế thừa
7.4.1. là cơ chế cho phép lớp con sử dụng lại các đặc điểm và hành vi đã được định nghĩa trong lớp cha
7.4.2. quan hệ lớp con với lớp cha là is-a
7.4.3. khái niệm
7.4.3.1. lớp được kế thừa gọi là lớp cha
7.4.3.2. lớp kế thừa gọi là lớp con
7.4.3.2.1. lớp con kế thừa tất cả thành phần của lớp cha ngoại trừ các thành phần khai báo private
7.4.3.2.2. lớp con có thể gọi constructor của lớp cha
7.4.3.2.3. lớp con có thể định nghĩa thêm các thuộc tính và phương thức mới
7.4.4. một số dạng kế thừa
7.4.4.1. single 1 lớp con kế thừa chỉ 1 lớp cha
7.4.4.2. multilevel 1 lớp con kế thừa từ 1 lóp cha, lớp cha lại kế thừa 1 lớp khác trên nó
7.4.4.3. hierarchical 1 lớp cha có nhiều lớp con với nhiều level khác nhau
7.4.5. cú pháp kế thừa
7.4.5.1. từ khóa extends được sử dụng dể kế thừa 1 lớp
7.4.6. method overriding (ghi đè phương thức )
7.4.6.1. là cơ chế cho phép lớp con định nghĩa lại các phương thức ở lớp cha
7.4.6.2. phương thức override ở lớp con có cùng tên cung danh sách tham số và kiểu dữ liệu trả về so với phương thức ở lớp cha
7.4.6.3. phương thức ở lớp con phải có access modifier có level bắng và cao hơn lớp cha
7.4.7. parent
7.4.7.1. được sử dụng trong 1 lớp con đẻ truy xuất các thuộc tính và phương thức lớp cha
7.4.7.2. parent::__construct được sử dụng trong lớp con để gọi đến constructor của lớp cha
7.4.8. final
7.4.8.1. được sử dụng với class hoặc method
7.4.8.2. với class ngăn chặn việc kế thừa 1 lớp
7.4.8.3. với method ngăn chặn việc ghi đè 1 phương thức
7.4.8.4. final class không thể là abstract class
7.5. là đơn vị thực thi cơ bản trong ngôn ngữ php, quy định hình thức và các khả năng của các đối tượng
7.6. constructor là 1 phương thức đặc biệt được sử dụng để khởi tạo các đối tượng của 1 lớp
7.7. đặt tên
7.7.1. tên lớp nên là 1 danh từ
7.7.2. tuân theo quy tắc Camel
7.7.3. nên đơn giản có nghĩa
7.7.4. không trùng với các từ khóa trong php
7.7.5. không được bắt đầu bằng chữ số . Có thể bắt đầu bằng ký tự $ hoặc _
7.8. khởi tạo đối tượng
7.8.1. sử dụng từ khóa new để tạo dối tượng
7.9. khai báo thuộc tính
7.9.1. mô tả các đặc điểm của đối tượng
7.9.2. thuộc tính còn được gọi là biến của đối tượng (instance variable)
7.10. khai báo phương thức
7.10.1. mô tả hành vi mà đối tượng có thể thực hiện
7.10.2. phương thức còn được gọi là phương thức của đối tượng (instance method)
7.11. hàm tạo (constructor)
7.11.1. dùng để tạo và khởi tạo các trạng thái ban đầu cuả đối tượng. Mặc định sẽ có 1 hàm tạo không có đối số được thêm vào cho lớp
7.11.2. có thể lựa chọn các constructor khác nhau bằng cách truyền vào các tham số khác nhau
7.12. truy xuất thuộc tính
7.12.1. thông qua biến trỏ đến đối tượng
7.12.2. sử dụng toán tử -> để truy xuất thuộc tính đối tượng
7.13. gọi phương thức
7.13.1. sử dụng toán tử -> để gọi phương thức đối tượng
7.14. access modifier
7.14.1. là các từ khóa được sử dụng để quy định mức độ truy cập đến lớp và các thành phần lớp
7.14.2. public có thể truy cập từ bất cứ đâu
7.14.3. private các phương thức và thuộc tính chỉ được phép truy xuất trong cung 1 lớp
7.14.4. protected các phương thức và thuộc tính được phép truy xuất trong cùng 1 lớp và ở lớp con kế thừa
7.15. từ khóa this
7.15.1. được sử dụng để đại diện cho đối tượng hiện tại
7.15.2. có thể sử dụng từ khóa this để truy cập đến các thành phần của đối tượng hiện tại
7.16. khai báo lớp đồng thời cũng là khai báo 1 kiểu dữ liệu mới để có thể khởi tạo các đối tượng thuộc kiểu dữ liệu đó
8. clean code
8.1. mã sạch
8.2. dễ đọc
8.3. dễ cải tiến
8.4. dễ bảo trì
8.5. ít phụ thuộc
8.6. không trùng lặp
8.7. thể hiện rõ ý tưởng thiết kế
8.8. tại sao cần clean code
8.8.1. năng suất sẽ giảm theo thời gian nếu làm việc với mã nguồn không tốt
8.8.2. các yếu tố ảnh hưởng đến mã nguồn
8.8.2.1. định danh
8.8.2.2. phương thức
8.8.2.3. ghi chú
8.8.2.4. định dạng của mã nguồn
8.8.2.5. thiết kế kiến trúc
8.8.2.6. xử lý lỗi và ngoại lệ
8.8.2.7. test
8.9. đặt tên tốt
8.9.1. cần thể hiện rõ ý nghĩa của đối tượng mà nó đại diện
8.9.2. tránh gây hiểu lầm
8.9.3. có sự khác biệt rõ ràng giữa các tên
8.9.4. tên phát âm được
8.9.5. tên gọi có thể tìm kiếm được
8.9.6. không viết tắt hoặc mã hóa
8.9.7. sử dụng đúng ngữ nghĩa
8.9.8. đặt tên lớp
8.9.8.1. nên là danh từ
8.9.8.2. tránh dùng từ gần nghĩa
8.9.8.3. nên bắt đầu bằng chữ viết hoa
8.9.8.4. tuân theo quy tắc CamelCase
8.9.9. tên phương thức
8.9.9.1. là 1 động từ hoặc bắt đầu bằng 1 động từ
8.9.9.2. bắt đầu bằng chữ viết thường
8.9.9.3. tuân theo quy tắc camelCase
9. Hệ quản trị CSDL
9.1. là 1 ứng dụng máy tính được sử dụng để quản lý dữ liệu
9.2. còn được gọi là DBMS( database management system)
9.3. các chức năng của DBMS
9.3.1. định nghĩa dữ liệu ( definition)
9.3.2. cập nhập dữ liệu ( udate )
9.3.3. truy vấn dữ liệu ( retrieval )
9.3.4. quản lý dữ liệu ( administration) bảo mật theo dõi sao lưu.....
9.4. một số DBMS
9.4.1. mysql
9.4.2. mariadb
9.4.3. mongodb
9.4.4. sqlite
9.4.5. ibmdb2
9.4.6. oracledb
9.4.7. postgeresql
10. abstract class
10.1. là những lớp có tính trừu tượng rất cao đến mức không thể tạo được các đối tượng của lớp đó
10.2. tính chất
10.2.1. không thể tạo đối tượng của lóp abstract
10.2.2. lớp abstract có thể có các thuộc tính và phương thức bình thường
10.2.3. 1 lớp chứa phương thức abstract thì lớp đó phải là abstract
10.2.4. 1 lớp không phải là abstract kế thừa 1 lớp cha abstract thì phai implement tất cả các phương thức abstract của lớp cha
10.2.5. 1 lớp abstract kế thừa 1 lớp cha abstract có thể không implement các phương thức của lớp cha
10.2.6. lớp abstract không thể là final
10.2.7. phương thức abstract không thể là final
11. Refactoring( tái cấu trúc mã nguồn )
11.1. là các kỹ thuật cho phép chỉnh sửa mã nguồn nội bộ mà không làm thay đổi hành vi củ hệ thống đối với bên ngoài
11.2. mục đích
11.2.1. mã nguồn dễ duy trì hơn
11.2.2. mã nguồn dễ mở rộng hơn
11.3. đổi tên biến và phương thức
11.3.1. để trở nên tốt hơn
11.3.1.1. dễ đọc
11.3.1.2. có ý nghĩa
11.3.1.3. thể hiện được ý nghĩa
11.3.1.4. tuân thủ coding convention
11.3.2. lưu ý
11.3.2.1. đổi tên tại vị trí khai báo
11.3.2.2. đổi tên tại các vị trí có sử dụng tên biến hoặc phương thức
11.3.3. nên sử dụng tính năng của IDE để đổi tên biến và phương thức
11.4. tách biến
11.4.1. giúp đơn giản hóa các biểu thức và giúp dễ hiểu hơn
11.5. tách hằng
11.5.1. mang lại ý nghĩa cho các giá trị thần kỳ và mã nguồn dễ hiểu hơn
11.6. tách phương thức
11.6.1. giúp các phương thức dễ đọc dễ hiểu dễ kiểm soát hơn
12. stack
12.1. giống như là 1 ngăn xếp
12.2. hoạt động theo nguyên lý last-in/first-out (vào sau / re trước )
12.3. có thể dùng mảng hoặc là 1 linkedlist để lưu trữ phần tử
12.4. thao tác cơ bản
12.4.1. push() : lưu giữ 1 phần tử trên ngăn xếp
12.4.2. pop() : xóa 1 phần tử từ ngăn xếp
12.4.3. peek() : lấy phần tử dữ liệu của ngăn xếp mà không xóa phần tử này
12.4.4. isEmpty() : kiểm tra rỗng
12.4.5. isfull() : kiểm tra ngăn xếp đã đầy hay chưa
13. thuật toán sắp xếp
13.1. là qúa trình xử lý 1 danh sách các phần tử để đặt chúng theo thứ tự thỏa mãn 1 tiêu chuẩn nào đó dựa trên nội dung thông tin lưu giữ tại mỗi phần tử
13.2. thường xét trường hợp các phần tử cần sắp xếp các con số
13.3. một số thuật toán sắp xếp
13.3.1. sắp xếp nổi bọt
13.3.1.1. so sánh 2 phần tử kề nhau nếu chúng chưa đứng đúng thứ tự thì đổi chỗ cho nhau
13.3.1.2. có thể tiến hành từ trên xuống (từ trái sang ) từ dưới lên ( từ phải sang )
13.3.1.3. ưu điểm : code ngắn gọn nhất
13.3.1.4. nhược điểm : hiệu suất thấp nhất
13.3.2. sắp xếp chèn
13.3.2.1. thực hiện sắp xếp day số theo cách duyệt tưng phần tử và chèn từng phần tử đó vào đúng vị trí trong mảng con đã sắp xếp sao cho dãy số trong mảng đã sắp xếp đó đảm bảo tính chất của 1 dãy số tăng dần
13.3.2.2. ưu điểm : chạy nhanh khi mảng nhỏ hay được sắp xếp 1 phần
13.3.2.3. nhược điểm : hiệu suất thấp
13.3.3. sắp xếp chọn
13.3.3.1. là sắp xếp 1 mảng bằng cách đi tìm phần tử có giá trị nhỏ nhất trong đoạn đoạn chưa được sắp xếp và đổi phần tử nhỏ nhất đó với phần tử ở đâu đoạn chưa được sắp xếp
13.3.3.2. thuật toán sẽ chia lam 2 mảng con
13.3.3.3. ưu điểm :thuật toán chạy nhanh hơn khi mảng sắp xếp 1 phần
13.3.3.4. nhược điểm : hiệu suất không cao
13.3.4. sắp xếp vun đống
13.3.5. sắp xếp nhanh
13.4. s
14. xử ký ngoại lệ
14.1. ngoại lệ là các lỗi phát sinh trong quá trình thực thi
14.2. các lỗi xảy ra
14.2.1. lỗi cú pháp
14.2.1.1. là lỗi xảy ra tại thời gian biên dịch trong các ngôn ngữ chương trình truyền thống và tại thời gian biên dịch trong javascript
14.2.2. lỗi chạy chương trình
14.2.2.1. là lỗi xảy ra trong suốt quá trình thực thi
14.2.3. lỗi logic
14.2.3.1. là kiểu lỗi khó có thể tìm dấu vết xảy ra khi tạo 1 lỗi về tính logic mà điều khiến script không nhận được kết quả như mong muốn
14.2.3.2. khó nắm bắt được lỗi logic bởi vì nó phụ thuộc vào yêu cầu và kiểu logic đặt vào chương trình
14.3. try-catch
14.3.1. dùng để tách phần giải quyết lỗi ra khỏi phần có thể sinh lỗi
14.3.2. quy định các loại ngoại lệ được bắt tại mức thực thi hiện hành
14.3.3. mã liên quan đến thuật toán nằm trong khối try
14.3.4. mã giải quyết vấn đề nằm trong khối catch
14.4. finally
14.4.1. sẽ luôn thực hiện vô điều kiện sau try-catch
14.5. throw
14.5.1. dùng để ném các lỗi có sẵn hoặc người dùng nghĩ ra
14.6. ngoại lệ do người dùng tạo
14.6.1. phải tạo 1 lớp là lớp mở rộng của lớp Exception có sẵn và chúng ta có thể thêm hàm để xử lý
15. PDO
15.1. là một exention để tối ưu trong việc truy xuất Database
15.2. cung cấp các cơ chế đẻ thao tác với Database thông qua các đối tượng
15.3. kết nối đến cơ sở dữ liệu
15.3.1. $conn =new PDO('mysql :host=localhost,dbname=name,$username,$password');
15.4. các thao tác
15.4.1. thêm mới
15.4.2. cập nhật
15.4.3. đọc dữ liệu
16. php
16.1. Biến
16.1.1. cục bộ (local) sử dụng trong hàm
16.1.2. toàn cục (global) sử dụng ngoài hàm
16.1.2.1. có thể sử dụng từ khóa global để truy xuất biến toàn cục trong hàm. Có thể sử dụng mảng $_GLOBAL
16.1.3. biến trong php bắt đầu bằng dấu $ tiêp theo là tên của biến
16.1.4. tên biến phải bắt đầu bằng 1 ký tự hoặc 1 dấu gạch dưới _
16.1.5. tên biến không thể bắt đầu bằng số
16.1.6. tĩnh (static) giữ lại giá tri của biến cục bộ (local) mà không hủy đi
16.1.7. tên biến chỉ được bao gồm các ký tự chữ ký tự số và dấu gạch chân
16.1.8. tên biến phân biệt chữ hoa và chữ thường
16.1.9. biến có thể khai báo bất cứ đâu , vị trí khai báo biến quy định phạm vi mà biến đó có thể được sử dụng
16.2. Các kiểu dữ liệu
16.2.1. String(chuỗi)
16.2.2. integer( số nguyên)
16.2.3. Float(số thập phân)
16.2.4. Boolean(true/false)
16.2.5. Array(mảng)
16.2.6. Object( đối tượng )
16.2.7. NULL
16.2.8. Resource
16.3. toán tử
16.3.1. toán học(Arithmetic)
16.3.1.1. +,-,*,/,%
16.3.2. gán(Assignment)
16.3.2.1. =, -=, +=, *= , /=, %=
16.3.2.2. == , ===, !=, >=, <=, <, >, <>, !==
16.3.3. so sánh (Comparison)
16.3.4. tăng/ giamr( increment/decrement
16.3.4.1. ++, --
16.3.5. logic(logical)
16.3.5.1. &&, ||, !
16.3.6. string (chuỗi)
16.3.7. Array (mảng)
16.4. câu lệnh điều kiện
16.4.1. if
16.4.1.1. thực hiện câu lệnh nếu điều kiện là đúng
16.4.2. if.. else
16.4.2.1. Thực hiện một câu lệnh nếu điều kiện là đúng, còn nếu điều kiện sai thì thực hiện một câu lệnh khác
16.4.3. if ... elseif... else
16.4.3.1. Thực hiện các câu lệnh khác nhau với việc đánh giá nhiều hơn 2 điều kiện
16.4.4. switch .... case
16.4.4.1. Chọn thực hiện một hoặc nhiều câu lệnh tùy thuộc vào điều kiện
16.5. câu lệnh lặp
16.5.1. while
16.5.1.1. Kiểm tra điều kiện, nếu đúng thì thực hiện các câu lệnh, lặp lại các bước như thế.
16.5.2. do ... while
16.5.2.1. Thực hiện các câu lệnh, kiểm tra điều kiện, nếu đúng thì lặp lại các bước như thế.
16.5.3. for
16.5.3.1. Thực hiện lặp lại các câu lệnh trong một số lần nhất định
16.5.4. foreach
16.5.4.1. Thực hiện lặp lại các câu lệnh đối với từng phần tử của một mảng
17. PHPmyadmin
17.1. là công cụ mã nguồn mở miễn phí dành cho mysql và mariaDB
17.2. được viết bằng php
17.3. sử dụng phpmyadmin
17.3.1. nhập dữ liệu
17.3.2. xuất dữ liệu
17.3.3. tạo bảng
17.3.4. xóa bảng
17.3.5. chèn dữ liệu
17.3.6. xóa dữ liệu
17.3.7. cập nhập dữ liệu
17.3.8. lấy dữ liệu
17.4. FREE
18. Queue
18.1. là một câu trúc dữ liệu trừu tượng, tương tự như hàng đợi trong đòi sống hàng ngày
18.2. tuân theo phương thức first-in/last-out ( vào trước / ra trước )
18.3. enqueue() : thêm 1 phần tử vào trong hàng đội
18.4. dequeue(): xóa 1 phần tử từ hàng đợi
18.5. peek(): lấy phần tử ở đầu hàng đợi mà không xóa phần tử này
18.6. isEmpty(): kiểm tra rỗng
18.7. isfull () : kiểm tra hàng đợi đầy hay chưa
19. cấu trúc dữ liệu
19.1. là hình thức tổ chức 1nhoms dữ liệu
19.1.1. lưu trữ dữ liệu
19.1.2. cung cấp các phương thức để thao tác với dữ liệu
19.2. khái niệm
19.2.1. container: lớp chứa dữ liệu
19.2.2. Element: các phần tử dữ liệu
19.3. cấu trúc thông dụng
19.3.1. set : nhóm các phần tử không trùng nhau
19.3.2. array
19.3.3. list : nhóm các phần tử có thể trùng nhau
19.3.4. stack : nhóm các phần tử theo trật tự first-in/last-out (vào trước / ra sau )
19.3.5. queue : nhóm các phần tử theo trật tự first-in/ last-out ( vào trước / ra trước )
19.3.6. map : lưu trữ các cặp key/value
19.3.7. tree : lưu trữ theo mối quan hệ cha con
19.3.8. graph : lưu trữ theo mối quan hệ mạng lưới
19.4. ArrayLisst
19.4.1. là 1 danh sách
19.4.2. lưu trữ dữ liệu trong mảng
19.4.3. kích thước thay đổi được
19.4.4. truy xuất phần tử nhanh
19.4.5. thêm xóa phần tử chậm
19.4.6. thao tác cơ bản
19.4.6.1. get(): lấy về phần tử
19.4.6.2. add() : thêm 1 phần tử
19.4.6.3. remove(); xóa 1 phần tử
19.4.6.4. size() : lấy về số lượng phần tử
19.4.6.5. find(); tìm kiếm phần tử
19.4.6.6. isEmpty() : kiểm tra rỗng
19.5. LinkedLisst
19.5.1. các phần tử liên kết với nhau qua tham chiếu
19.5.2. truy xuất ngẫu nhiên chậm
19.5.3. thêm xóa phần tử nhanh
19.5.4. hoạt động trên cơ chế liên kết giữa các node . Mỗi node chứa dữ liệu của node đó và liên kết với node khác
19.5.5. singly linkedlisst
19.5.5.1. một node chỉ có 1 liên kết đến node phía sau nó. node cuối cùng trỏ về null
19.5.6. circular linkedlisst
19.5.6.1. node cuối cùng trỏ về node đầu tiên
19.5.7. doubly linkey list
19.5.7.1. một node chứa 2 liên kết trỏ đến phần tử trước và sau nó
19.5.7.2. phần tử phía trước của phần tử đầu tiên là null
19.5.7.3. phần tử phía sau của phần tử sau là null
19.5.8. circular doubly linkedlisst
19.5.8.1. node đầu tiên và node cuối cùng có liên kết trỏ đến nhau
20. Web & Web site
20.1. giao thức http là giao thưc truyền tải siêu văn bản
20.1.1. http request
20.1.2. http response
20.2. web server là một phần mềm /phần cứng để cung cấp các taì nguyên web
20.3. website
20.3.1. website tĩnh là các trang web mà nội dung củ nó không thay đổi. Những trang web tĩnh được viết bằng mã HTML thêm CSS , javascript để thêm hiệu ứng.
20.3.2. website động là website nội dung thay đổi sự thay đổi thùy theo thời gian tùy theo người dùng thùy theo ngữ cảnh. Thường sử dụng các ngôn ngữ phía server chẳng hạn như java,PHP,c#....và cơ sở dữ liệu
20.4. web là 1 không gian trên internet mà ở đó các tài liệu và các tài nguyên khác được chia sẻ dưới dạng ủl
20.5. website la tập hợp cá trang tài liệu và tài nguyên có liên quan đến nhau thường được truy cập qua một tên miền
20.6. LAMP là một bộ công nghệ được ưa chuộng và sử dụng phổ biến để xây dựng các ứng dụng web thông dụng
20.6.1. Linux là một họ các hệ điều hành mã nguồn mở
20.6.2. Aphache là phần mềm máy chủ dịch vụ web và miễn phí
20.6.3. MySQL là 1 hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở
20.6.4. PHP là 1 ngôn ngữ lập trình phía server
20.6.4.1. chức năng là xử lý yêu cầu của người dùng và sinh ra kết quả để trả về
20.6.5. tại sao nên sử dụng LAMP
20.6.5.1. các thành phần của LAMP đều là mã nguồn mở và miễn phí
20.6.5.2. cộng đồng sử dụng LAMP rất lớn
20.6.5.3. có nhiều các nền tảng (framework) thư viện (library) công cụ (tool)
20.6.5.4. các thành phần trong LAMP tương thích tốt vơi nhau và tuân theo các tiêu chuẩn của nghành
20.6.5.5. việc phát triển các ứng dụng LAMP khá nhanh chóng và dễ dàng
21. Mysql
21.1. là 1 hệ quản trị CSDL quan hệ mã nguồn mở
21.2. có các phiên bản chạy được trên nhiều nền tangr:windows, linux, macos.....
21.3. mysql server: máy chủ dịch vụ quản trị
21.4. mysql client
21.4.1. ứng dụng cho phép kết nối và tương tác với mysql server
22. include && require
22.1. đều được sử dụng để nhúng trang php
22.2. điểm khác biệt
22.2.1. require sẽ tung ra lỗi nghiêm trọng ( E_COMPILE_EROR) và dừng thực thi
22.2.2. include sẽ tung ra cảnh cáo (E_WARNING) và tiếp tục thực thi
22.3. có thể nhúng trang php nhiều lần nếu được sử dụng nhiều nơi
22.4. include_once && require_once chỉ nhúng trang php duy nhất 1 lần
23. log
23.1. error log ghi nhận các lỗi xảy ra
23.2. access ghi nhận các truy cập lên ứng dụng
23.3. vị trí lưu trữ log phụ thuộc vào hệ điều hành đang dùng webserver đang dùng và cấu hình của ứng dụng web
24. tree
24.1. là một cấu trúc dữ liệu được sư dụng rộng rãi gồm các node được liên kết với nhau theo quan hệ cha con
24.2. khái niệm cơ bản
24.2.1. nút gốc
24.2.2. nút cha
24.2.3. nút con
24.2.4. nút lá
24.2.5. cây con
24.2.6. duyệt
25. sql- standard php library
25.1. sqlStack
25.1.1. cung cấp các chức năng chính của 1 stack được triển khai bằng cách sư dụng liên kết đôi
25.1.2. duyệt phần tử theo cơ chế LIFO IT_MODE_LIFO và IT_MODE_KEEP
25.1.3. kế thừa từ lớp Sqldoublylinkedlist nên được thừa kế tất cả các phương thức của lớp sqldoublylinkedlist
25.2. sqlqueue
25.2.1. cung cấp các chức năng chính của 1 hàng đợi queue, được triển khai bằng cách sử dụng danh sách liên kết đôi
25.2.2. duyệt các phần tử theo cơ chế FIFO
25.2.3. kế thừa từ lớp sqldoublylinkedlist nên được kế thừa tất cả các phương thức của lớp sqldoublylinkedlist
25.2.4. lưu ý: nếu chúng ta sử dụng push() và pop() thì hàng đợi sẽ hành xử như là 1 stack chứ không phải queue
25.3. là bộ thư viện chuẩn php cung cấp nhiều cấu trúc dữ liệu tiêu chuẩn trong các ứng dụng
25.4. một số cấu trúc dữ liệu như : doublylinkedlist, heaps, arrays, map
25.5. danh sách liên kết đôi là 1 danh sách có các node được liên kết với nhau theo cả 2 hướng
25.6. sqldoublylinkedlist
25.6.1. cung cấp các chức năng chính của một danh sách liên kết đôi
26. interface
26.1. là cấu trúc tương tự như lớp nhưng chỉ chứa hằng số và abstract method
26.2. quy định chung cho các lớp triển khai nó
26.3. sử dụng từ khóa interface để định nghĩa interface
26.4. tính chất
26.4.1. interface tạo ra 1 kiểu dữ liệu mới
26.4.2. không thể tạo đối tượng của interface
26.4.3. interface không thể chứa các phương thức không abstract
26.4.4. khi một lớp triển khai interface thì cần triển khai tất cả các phương thức được khai báo trong interface đó
26.4.5. interface có thể được thiết kế để khai báo cá phương thức chung cho các lớp không liên quan đến nhau
26.4.6. interface bổ sung cho việc java không hỗ trợ đa kế thừa
26.5. triển khai interface
26.5.1. 1 lớp triển khai interface bằng cách sử dụng từ khóa implements
26.5.2. 1 lớp có thể implements nhiều interface
26.6. kế thừa interface
26.6.1. 1 interface có thể kế thừa nhiều interface khác
26.6.2. interface con thừa hưởng các phương thức và hằng số được khai báo trong interface cha
26.6.3. interface con có thể khai báo thêm các thành phần mới
26.6.4. từ khóa extends được sử dụng để kế thừa interface
26.7. access modifier
26.7.1. mặc định là public
26.7.2. không cần thiết chỉ rõ access modifier của phương thức interface
26.8. khai báo hằng
26.8.1. có thể khai báo các hằng số trong interface
26.8.2. không cần thiết phải ghi rõ từ khóa final cho hằng số
26.8.3. không cân thiết chỉ rỏ access modifier cho hằng số
27. thuật toán tìm kiếm
27.1. tìm kiếm tuyến tính
27.1.1. mỗi phần tử được kiểm tra và nếu tìm thấy bất kỳ kết nối nào thì phần tử cụ thể đó được trả về nếu không tìm thấy thì quá trình tìm kiếm tiếp tục diễn ra cho tới khi tìm kiếm hết dữ liệu
27.2. tìm kiếm nhị phân
27.2.1. tìm kiếm 1 phần tử cụ thể bằng cách so sánh phần tử tại vị trí giữa nhất của tập dữ liệu
27.2.2. nếu tìm thấy kết nối thì chỉ mục của phần tử được trả về
27.2.3. nếu phần tử cần tìm là lớn hơn giá trị phần tử giữa thì phần tử cần tìm được tìm trong mảng con nằm bên phải phần tử giữa. nếu không thì tìm ở bên trái phần tử giữa, tiếp tục như vậy cho tới khi tìm hết mọi phần tử trên mảng con này
28. Sql
28.1. là viết tắt của cụm từ Structured Query Language ( ngôn ngữ truy vấn có cấu trúc )
28.2. được sử dụng để thao tác với các CSDL quan hệ
28.3. có nhiều phiên bản sql khác nhau mặc dù hầu hết đêu sử dụng chung cú pháp tuy nhiên cũng có 1 số khác biệt
28.4. các câu lệnh trong sql
28.4.1. thực thi các câu truy vấn
28.4.2. truy vấn dữ liệu từ csdl
28.4.3. thêm dữ liệu vào csdl
28.4.4. cập nhập dữ liệu trong csdl
28.4.5. xóa các bản ghi trong csdl
28.4.6. tạo csdl mới
28.4.7. tạo bảng trong csdl
28.4.8. xóa csdl
28.4.9. xóa bảng....
28.5. 1 số từ khóa quan trọng
28.5.1. SELECT
28.5.2. UPDATE
28.5.3. DELETE
28.5.4. INSERT
28.5.5. CREATE
28.5.6. ALTER
28.5.7. DROP
28.5.8. WHERE
29. MVC
29.1. là mô hình được sử dụng rộng rãi nhất trong phát triển ứng dụng web
29.2. gồm 3 lớp
29.2.1. model
29.2.1.1. quản lý dữ liệu lưu trữ truy vấn giao tiếp với cơ sở dữ liệu
29.2.2. view
29.2.2.1. là giao diện của ứng dụng biểu diễn dữ liệu
29.2.3. controller
29.2.3.1. quản lý và điều phối luồng hoạt động nhận request từ client điều phối model và view để cho ra output thích hợp và trả kết quả cho người dùng
29.3. lợi ích của mvc
29.3.1. tách biệt model và view tạo ra sự linh hoạt khi thay đổi ứng dụng như giao diện hoặc sử lý logic
29.3.2. tầng model và view có thể thay đổi chỉnh sửa một cách độc lập . Vậy nên ta có thể tạo ra các giao tiếp thông minh hơn bằng cách thay đổi view hoặc cũng có thể thay thế Database bằng cách sử dụng web sever