1. clean code
1.1. mã sạch
1.2. dễ đọc
1.3. dễ cải tiến
1.4. dễ bảo trì
1.5. ít phụ thuộc
1.6. không trùng lặp
1.7. thể hiện rõ ý tưởng thiết kế
1.8. tại sao cần clean code
1.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
1.8.2. các yếu tố ảnh hưởng đến mã nguồn
1.8.2.1. định danh
1.8.2.2. phương thức
1.8.2.3. ghi chú
1.8.2.4. định dạng của mã nguồn
1.8.2.5. thiết kế kiến trúc
1.8.2.6. xử lý lỗi và ngoại lệ
1.8.2.7. test
1.9. đặt tên tốt
1.9.1. cần thể hiện rõ ý nghĩa của đối tượng mà nó đại diện
1.9.2. tránh gây hiểu lầm
1.9.3. có sự khác biệt rõ ràng giữa các tên
1.9.4. tên phát âm được
1.9.5. tên gọi có thể tìm kiếm được
1.9.6. không viết tắt hoặc mã hóa
1.9.7. sử dụng đúng ngữ nghĩa
1.9.8. đặt tên lớp
1.9.8.1. nên là danh từ
1.9.8.2. tránh dùng từ gần nghĩa
1.9.8.3. nên bắt đầu bằng chữ viết hoa
1.9.8.4. tuân theo quy tắc CamelCase
1.9.9. tên phương thức
1.9.9.1. là 1 động từ hoặc bắt đầu bằng 1 động từ
1.9.9.2. bắt đầu bằng chữ viết thường
1.9.9.3. tuân theo quy tắc camelCase
2. xử ký ngoại lệ
2.1. ngoại lệ là các lỗi phát sinh trong quá trình thực thi
2.2. các lỗi xảy ra
2.2.1. lỗi cú pháp
2.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
2.2.2. lỗi chạy chương trình
2.2.2.1. là lỗi xảy ra trong suốt quá trình thực thi
2.2.3. lỗi logic
2.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
2.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
2.3. try-catch
2.3.1. dùng để tách phần giải quyết lỗi ra khỏi phần có thể sinh lỗi
2.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
2.3.3. mã liên quan đến thuật toán nằm trong khối try
2.3.4. mã giải quyết vấn đề nằm trong khối catch
2.4. finally
2.4.1. sẽ luôn thực hiện vô điều kiện sau try-catch
2.5. throw
2.5.1. dùng để ném các lỗi có sẵn hoặc người dùng nghĩ ra
2.6. ngoại lệ do người dùng tạo
2.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ý
3. Web & Web site
3.1. giao thức http là giao thưc truyền tải siêu văn bản
3.1.1. http request
3.1.2. http response
3.2. web server là một phần mềm /phần cứng để cung cấp các taì nguyên web
3.3. website
3.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.
3.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
3.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
3.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
3.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
3.6.1. Linux là một họ các hệ điều hành mã nguồn mở
3.6.2. Aphache là phần mềm máy chủ dịch vụ web và miễn phí
3.6.3. MySQL là 1 hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở
3.6.4. PHP là 1 ngôn ngữ lập trình phía server
3.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ề
3.6.5. tại sao nên sử dụng LAMP
3.6.5.1. các thành phần của LAMP đều là mã nguồn mở và miễn phí
3.6.5.2. cộng đồng sử dụng LAMP rất lớn
3.6.5.3. có nhiều các nền tảng (framework) thư viện (library) công cụ (tool)
3.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
3.6.5.5. việc phát triển các ứng dụng LAMP khá nhanh chóng và dễ dàng
4. Hệ quản trị CSDL
4.1. là 1 ứng dụng máy tính được sử dụng để quản lý dữ liệu
4.2. còn được gọi là DBMS( database management system)
4.3. các chức năng của DBMS
4.3.1. định nghĩa dữ liệu ( definition)
4.3.2. cập nhập dữ liệu ( udate )
4.3.3. truy vấn dữ liệu ( retrieval )
4.3.4. quản lý dữ liệu ( administration) bảo mật theo dõi sao lưu.....
4.4. một số DBMS
4.4.1. mysql
4.4.2. mariadb
4.4.3. mongodb
4.4.4. sqlite
4.4.5. ibmdb2
4.4.6. oracledb
4.4.7. postgeresql
4.5. Sql
4.5.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 )
4.5.2. được sử dụng để thao tác với các CSDL quan hệ
4.5.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
4.5.4. các câu lệnh trong sql
4.5.4.1. thực thi các câu truy vấn
4.5.4.2. truy vấn dữ liệu từ csdl
4.5.4.3. thêm dữ liệu vào csdl
4.5.4.4. cập nhập dữ liệu trong csdl
4.5.4.5. xóa các bản ghi trong csdl
4.5.4.6. tạo csdl mới
4.5.4.7. tạo bảng trong csdl
4.5.4.8. xóa csdl
4.5.4.9. xóa bảng....
4.5.5. 1 số từ khóa quan trọng
4.5.5.1. SELECT
4.5.5.2. UPDATE
4.5.5.3. DELETE
4.5.5.4. INSERT
4.5.5.5. CREATE
4.5.5.6. ALTER
4.5.5.7. DROP
4.5.5.8. WHERE
5. Refactoring( tái cấu trúc mã nguồn )
5.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
5.2. mục đích
5.2.1. mã nguồn dễ duy trì hơn
5.2.2. mã nguồn dễ mở rộng hơn
5.3. đổi tên biến và phương thức
5.3.1. để trở nên tốt hơn
5.3.1.1. dễ đọc
5.3.1.2. có ý nghĩa
5.3.1.3. thể hiện được ý nghĩa
5.3.1.4. tuân thủ coding convention
5.3.2. lưu ý
5.3.2.1. đổi tên tại vị trí khai báo
5.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
5.3.3. nên sử dụng tính năng của IDE để đổi tên biến và phương thức
5.4. tách biến
5.4.1. giúp đơn giản hóa các biểu thức và giúp dễ hiểu hơn
5.5. tách hằng
5.5.1. mang lại ý nghĩa cho các giá trị thần kỳ và mã nguồn dễ hiểu hơn
5.6. tách phương thức
5.6.1. giúp các phương thức dễ đọc dễ hiểu dễ kiểm soát hơn
6. Mysql
6.1. là 1 hệ quản trị CSDL quan hệ mã nguồn mở
6.2. có các phiên bản chạy được trên nhiều nền tangr:windows, linux, macos.....
6.3. mysql server: máy chủ dịch vụ quản trị
6.4. mysql client
6.4.1. ứng dụng cho phép kết nối và tương tác với mysql server
6.5. website chính thwcs: MySQL
7. PHPmyadmin
7.1. là công cụ mã nguồn mở miễn phí dành cho mysql và mariaDB
7.2. được viết bằng php
7.3. sử dụng phpmyadmin
7.3.1. nhập dữ liệu
7.3.2. xuất dữ liệu
7.3.3. tạo bảng
7.3.4. xóa bảng
7.3.5. chèn dữ liệu
7.3.6. xóa dữ liệu
7.3.7. cập nhập dữ liệu
7.3.8. lấy dữ liệu
8. thuật toán tìm kiếm
8.1. tìm kiếm tuyến tính
8.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
8.2. tìm kiếm nhị phân
8.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
8.2.2. nếu tìm thấy kết nối thì chỉ mục của phần tử được trả về
8.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
9. Regex
9.1. thường được gọi là Regex hoặc Regexp
9.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
9.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)
9.4. là 1 mẫu nó tương đồng quy luật với 1 chuỗi từ trái qua phải
9.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
9.6. tại sao dùng biểu thức chính quy
9.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
9.6.2. khi xác định đầu input người dùng nhập
9.6.3. highlight từ khóa tìm kiếm
9.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ế
9.6.5. đặc biệt sử dụng biểu thức chinh quy tăng perpormance của chương trình
9.7. khai báo
9.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ự /
9.8. Các ký tự dùng trong biểu thức chính quy được gọi là metacharacters
9.9. các hàm
9.9.1. preg_match()
9.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
9.9.2. preg_match_all()
9.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.
9.9.3. preg_split()
9.9.3.1. để chia nhỏ chuỗi thành mảng chứa các chuỗi con.
9.9.4. preg_replace()
9.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.
10. Cơ sở dữ liệu
10.1. là nhóm dữ liệu có tổ chức
10.2. là cơ chế lưu trữ dữ liệu
10.3. có nhiều CSDL khác nhau
10.3.1. CSDL phân cấp
10.3.2. CSDL mạng
10.3.3. CSDL quan hệ......
10.4. CSDL quan hệ
10.4.1. la CSDL được xây dựng trên mô hình dữ liệu quan hệ
10.4.2. dữ liệu được tổ chức trong bảng còn được gọi là quan hệ
10.4.3. dòng được gọi là bản ghi hoặc hàng
10.4.4. cột được gọi là thuộc tính hoặc trường
10.4.5. 1 bảng thường lưu trữ dữ liệu của 1 loại thực thể nhất định
11. php
11.1. Hàm
11.1.1. Thân hàm
11.1.2. là một khối lệnh thực hiện 1 nhiệm vụ nhất định
11.1.3. có thể sử dụng lặp đi lặp lại nhiều lần
11.1.4. không được thực thi ngay tức thì khi nạp trang php
11.1.5. chỉ thực thi khi được gọi hàm
11.1.6. khai báo hàm
11.1.6.1. Tên hàm
11.1.6.1.1. phải bắt đầu bằng ký tự chữ hoặc dấu gạch dưới
11.1.6.1.2. không phân biệt chữ hoa và chữ thường
11.1.6.1.3. nên đặt tên hàm có ý nghĩa
11.1.6.2. Tham số đầu vào
11.1.6.2.1. là cơ chế truyền dữ liệu đầu vào vào cho hàm
11.1.6.2.2. tham số giống như 1 biến
11.1.6.2.3. có thể truyền 1 hoặc nhiều tham số vào hàm
11.1.6.2.4. các tham số cách nhau bởi dấu phẩy (,)
11.1.6.2.5. các tham số được đặt trong () sau tên hàm
11.1.6.2.6. giá trị
11.2. Biến
11.2.1. cục bộ (local) sử dụng trong hàm
11.2.2. toàn cục (global) sử dụng ngoài hàm
11.2.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
11.2.3. tĩnh (static) giữ lại giá tri của biến cục bộ (local) mà không hủy đi
11.2.4. biến trong php bắt đầu bằng dấu $ tiêp theo là tên của biến
11.2.5. tên biến phải bắt đầu bằng 1 ký tự hoặc 1 dấu gạch dưới _
11.2.6. tên biến không thể bắt đầu bằng số
11.2.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
11.2.8. tên biến phân biệt chữ hoa và chữ thường
11.2.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
11.3. Các kiểu dữ liệu
11.3.1. String(chuỗi)
11.3.2. integer( số nguyên)
11.3.3. Float(số thập phân)
11.3.4. Boolean(true/false)
11.3.5. Array(mảng)
11.3.6. Object( đối tượng )
11.3.7. NULL
11.3.8. Resource
11.4. toán tử
11.4.1. toán học(Arithmetic)
11.4.1.1. +,-,*,/,%
11.4.2. gán(Assignment)
11.4.2.1. =, -=, +=, *= , /=, %=
11.4.3. so sánh (Comparison)
11.4.3.1. == , ===, !=, >=, <=, <, >, <>, !==
11.4.4. tăng/ giamr( increment/decrement
11.4.4.1. ++, --
11.4.5. logic(logical)
11.4.5.1. &&, ||, !
11.4.6. string (chuỗi)
11.4.7. Array (mảng)
11.5. câu lệnh điều kiện
11.5.1. if
11.5.1.1. thực hiện câu lệnh nếu điều kiện là đúng
11.5.2. if.. else
11.5.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
11.5.3. if ... elseif... else
11.5.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
11.5.4. switch .... case
11.5.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
11.6. câu lệnh lặp
11.6.1. while
11.6.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ế.
11.6.2. do ... while
11.6.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ế.
11.6.3. for
11.6.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
11.6.4. foreach
11.6.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
11.7. mảng
11.7.1. mảng đa chiều
11.7.1.1. là mảng có các phần tử là mảng
11.7.1.2. có thể có mảng 2 chiều 3 chiều hoặc nhiều hơn
11.7.1.3. thì cần nhiều chỉ số để truy xuất đến 1 phần tử
11.7.1.4. duyêt mảng
11.7.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
11.7.2. $array
11.7.2.1. indexarrays
11.7.2.1.1. mảng 1 chiều với 1 chỉ số
11.7.2.2. assocltivearrays
11.7.2.2.1. màng 1 chiều với chỉ số là 1 từ khóa
11.7.2.3. multidimenslonalalarrays
11.7.2.4. count() trả về độ dài của mảng
11.7.2.5. for và foreach để duyệt mang
11.7.3. là cơ chế giúp lưu trữ nhiều giá trị trong cùng 1 biến
11.7.4. các giá trị được lưu trong mảng thương là cung loại
11.7.5. khái niệm
11.7.5.1. tên mảng tuân thủ các quy tắc như tên biến
11.7.5.2. phần tử mảng : từng giá trị của mảng
11.7.5.3. độ dài mảng : số lượng phần tử của mảng
11.7.5.4. chỉ số : vị trí của các phần tử trong mảng
11.8. abstract class
11.8.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 đó
11.8.2. tính chất
11.8.2.1. không thể tạo đối tượng của lóp abstract
11.8.2.2. lớp abstract có thể có các thuộc tính và phương thức bình thường
11.8.2.3. 1 lớp chứa phương thức abstract thì lớp đó phải là abstract
11.8.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
11.8.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
11.8.2.6. lớp abstract không thể là final
11.8.2.7. phương thức abstract không thể là final
11.9. interface
11.9.1. là cấu trúc tương tự như lớp nhưng chỉ chứa hằng số và abstract method
11.9.2. quy định chung cho các lớp triển khai nó
11.9.3. sử dụng từ khóa interface để định nghĩa interface
11.9.4. tính chất
11.9.4.1. interface tạo ra 1 kiểu dữ liệu mới
11.9.4.2. không thể tạo đối tượng của interface
11.9.4.3. interface không thể chứa các phương thức không abstract
11.9.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 đó
11.9.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
11.9.4.6. interface bổ sung cho việc java không hỗ trợ đa kế thừa
11.9.5. triển khai interface
11.9.5.1. 1 lớp triển khai interface bằng cách sử dụng từ khóa implements
11.9.5.2. 1 lớp có thể implements nhiều interface
11.9.6. kế thừa interface
11.9.6.1. 1 interface có thể kế thừa nhiều interface khác
11.9.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
11.9.6.3. interface con có thể khai báo thêm các thành phần mới
11.9.6.4. từ khóa extends được sử dụng để kế thừa interface
11.9.7. access modifier
11.9.7.1. mặc định là public
11.9.7.2. không cần thiết chỉ rõ access modifier của phương thức interface
11.9.8. khai báo hằng
11.9.8.1. có thể khai báo các hằng số trong interface
11.9.8.2. không cần thiết phải ghi rõ từ khóa final cho hằng số
11.9.8.3. không cân thiết chỉ rỏ access modifier cho hằng số
11.10. include && require
11.10.1. đều được sử dụng để nhúng trang php
11.10.2. điểm khác biệt
11.10.2.1. require sẽ tung ra lỗi nghiêm trọng ( E_COMPILE_EROR) và dừng thực thi
11.10.2.2. include sẽ tung ra cảnh cáo (E_WARNING) và tiếp tục thực thi
11.10.3. có thể nhúng trang php nhiều lần nếu được sử dụng nhiều nơi
11.10.4. include_once && require_once chỉ nhúng trang php duy nhất 1 lần
11.11. oop
11.11.1. static
11.11.1.1. được sử dụng để khai báo các thuộc tính và phương thức của lớp
11.11.1.2. các thành phần static trực thuộc lớp thay vi trực thuộc đối tượng
11.11.1.3. biến static còn được gọi là biến của lớp
11.11.1.4. phương thức static còn được gọi là phương thức của lớp
11.11.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
11.11.1.6. không cần khởi tạo vẫn có thể sử dụng các thành phần static
11.11.2. setter
11.11.3. getter
11.11.4. kế thừa
11.11.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
11.11.4.2. quan hệ lớp con với lớp cha là is-a
11.11.4.3. khái niệm
11.11.4.3.1. lớp được kế thừa gọi là lớp cha
11.11.4.3.2. lớp kế thừa gọi là lớp con
11.11.4.4. một số dạng kế thừa
11.11.4.4.1. single 1 lớp con kế thừa chỉ 1 lớp cha
11.11.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ó
11.11.4.4.3. hierarchical 1 lớp cha có nhiều lớp con với nhiều level khác nhau
11.11.4.5. cú pháp kế thừa
11.11.4.5.1. từ khóa extends được sử dụng dể kế thừa 1 lớp
11.11.4.6. method overriding (ghi đè phương thức )
11.11.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
11.11.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
11.11.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
11.11.4.7. parent
11.11.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
11.11.4.7.2. parent::__construct được sử dụng trong lớp con để gọi đến constructor của lớp cha
11.11.4.8. final
11.11.4.8.1. được sử dụng với class hoặc method
11.11.4.8.2. với class ngăn chặn việc kế thừa 1 lớp
11.11.4.8.3. với method ngăn chặn việc ghi đè 1 phương thức
11.11.4.8.4. final class không thể là abstract class
11.11.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
11.11.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
11.11.7. đặt tên
11.11.7.1. tên lớp nên là 1 danh từ
11.11.7.2. tuân theo quy tắc Camel
11.11.7.3. nên đơn giản có nghĩa
11.11.7.4. không trùng với các từ khóa trong php
11.11.7.5. không được bắt đầu bằng chữ số . Có thể bắt đầu bằng ký tự $ hoặc _
11.11.8. khởi tạo đối tượng
11.11.8.1. sử dụng từ khóa new để tạo dối tượng
11.11.9. khai báo thuộc tính
11.11.9.1. mô tả các đặc điểm của đối tượng
11.11.9.2. thuộc tính còn được gọi là biến của đối tượng (instance variable)
11.11.10. khai báo phương thức
11.11.10.1. mô tả hành vi mà đối tượng có thể thực hiện
11.11.10.2. phương thức còn được gọi là phương thức của đối tượng (instance method)
11.11.11. hàm tạo (constructor)
11.11.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
11.11.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
11.11.12. truy xuất thuộc tính
11.11.12.1. thông qua biến trỏ đến đối tượng
11.11.12.2. sử dụng toán tử -> để truy xuất thuộc tính đối tượng
11.11.13. gọi phương thức
11.11.13.1. sử dụng toán tử -> để gọi phương thức đối tượng
11.11.14. access modifier
11.11.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
11.11.14.2. public có thể truy cập từ bất cứ đâu
11.11.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
11.11.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
11.11.15. từ khóa this
11.11.15.1. được sử dụng để đại diện cho đối tượng hiện tại
11.11.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
11.11.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 đó
12. thuật toán sắp xếp
12.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ử
12.2. thường xét trường hợp các phần tử cần sắp xếp các con số
12.3. một số thuật toán sắp xếp
12.3.1. sắp xếp nổi bọt
12.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
12.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 )
12.3.1.3. ưu điểm : code ngắn gọn nhất
12.3.1.4. nhược điểm : hiệu suất thấp nhất
12.3.2. sắp xếp chèn
12.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
12.3.2.2. ưu điểm : chạy nhanh khi mảng nhỏ hay được sắp xếp 1 phần
12.3.2.3. nhược điểm : hiệu suất thấp
12.3.3. sắp xếp chọn
12.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
12.3.3.2. thuật toán sẽ chia lam 2 mảng con
12.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
12.3.3.4. nhược điểm : hiệu suất không cao
12.3.4. sắp xếp vun đống
12.3.5. sắp xếp nhanh
13. String
13.1. là 1 kiểu dữ liệu cơ bản trong php
13.2. là dãy liên tiếp các ký tự
13.3. chuỗi không có ký tự gọi là chuỗi rỗng
13.4. đươc bao quanh bởi nháy đơn hoặc nháy kép
13.5. toán tử chuỗi
13.5.1. trong php để nối hai hay nhiều chuỗi ta sử dụng toán tử dấu chấm
13.6. ký tự đặc biệt
13.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
13.7. chỉ số của ký tự chuỗi
13.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ự
14. Cấu trúc dữ liệ và giải thuật
14.1. cấu trúc dữ liệu
14.1.1. là hình thức tổ chức 1nhoms dữ liệu
14.1.1.1. lưu trữ dữ liệu
14.1.1.2. cung cấp các phương thức để thao tác với dữ liệu
14.1.2. khái niệm
14.1.2.1. container: lớp chứa dữ liệu
14.1.2.2. Element: các phần tử dữ liệu
14.1.3. cấu trúc thông dụng
14.1.3.1. set : nhóm các phần tử không trùng nhau
14.1.3.2. array
14.1.3.3. list : nhóm các phần tử có thể trùng nhau
14.1.3.4. stack : nhóm các phần tử theo trật tự first-in/last-out (vào trước / ra sau )
14.1.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 )
14.1.3.6. map : lưu trữ các cặp key/value
14.1.3.7. tree : lưu trữ theo mối quan hệ cha con
14.1.3.8. graph : lưu trữ theo mối quan hệ mạng lưới
14.1.4. ArrayLisst
14.1.4.1. là 1 danh sách
14.1.4.2. lưu trữ dữ liệu trong mảng
14.1.4.3. kích thước thay đổi được
14.1.4.4. truy xuất phần tử nhanh
14.1.4.5. thêm xóa phần tử chậm
14.1.4.6. thao tác cơ bản
14.1.4.6.1. get(): lấy về phần tử
14.1.4.6.2. add() : thêm 1 phần tử
14.1.4.6.3. remove(); xóa 1 phần tử
14.1.4.6.4. size() : lấy về số lượng phần tử
14.1.4.6.5. find(); tìm kiếm phần tử
14.1.4.6.6. isEmpty() : kiểm tra rỗng
14.1.5. LinkedLisst
14.1.5.1. các phần tử liên kết với nhau qua tham chiếu
14.1.5.2. truy xuất ngẫu nhiên chậm
14.1.5.3. thêm xóa phần tử nhanh
14.1.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
14.1.5.5. singly linkedlisst
14.1.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
14.1.5.6. circular linkedlisst
14.1.5.6.1. node cuối cùng trỏ về node đầu tiên
14.1.5.7. doubly linkey list
14.1.5.7.1. một node chứa 2 liên kết trỏ đến phần tử trước và sau nó
14.1.5.7.2. phần tử phía trước của phần tử đầu tiên là null
14.1.5.7.3. phần tử phía sau của phần tử sau là null
14.1.5.8. circular doubly linkedlisst
14.1.5.8.1. node đầu tiên và node cuối cùng có liên kết trỏ đến nhau
14.2. tree
14.2.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
14.2.2. khái niệm cơ bản
14.2.2.1. nút gốc
14.2.2.2. nút cha
14.2.2.3. nút con
14.2.2.4. nút lá
14.2.2.5. cây con
14.2.2.6. duyệt
14.3. Queue
14.3.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
14.3.2. tuân theo phương thức first-in/last-out ( vào trước / ra trước )
14.3.3. enqueue() : thêm 1 phần tử vào trong hàng đội
14.3.4. dequeue(): xóa 1 phần tử từ hàng đợi
14.3.5. peek(): lấy phần tử ở đầu hàng đợi mà không xóa phần tử này
14.3.6. isEmpty(): kiểm tra rỗng
14.3.7. isfull () : kiểm tra hàng đợi đầy hay chưa
14.4. stack
14.4.1. giống như là 1 ngăn xếp
14.4.2. hoạt động theo nguyên lý last-in/first-out (vào sau / re trước )
14.4.3. có thể dùng mảng hoặc là 1 linkedlist để lưu trữ phần tử
14.4.4. thao tác cơ bản
14.4.4.1. push() : lưu giữ 1 phần tử trên ngăn xếp
14.4.4.2. pop() : xóa 1 phần tử từ ngăn xếp
14.4.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
14.4.4.4. isEmpty() : kiểm tra rỗng
14.4.4.5. isfull() : kiểm tra ngăn xếp đã đầy hay chưa
15. MVC
15.1. model
15.1.1. Quản lý dữ liệu, lưu trữ, truy vấn, giao tiếp với CSDL
15.2. view
15.2.1. là giao diện của ứng dụng, biểu diễn giữ liệu
15.3. controller
15.3.1. quản lý dữ liệu 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 ứng và trả về kết quả cho người dùng
15.4. Lợi ích
15.4.1. Tách biệt Model và View, tạo sự linh hoạt khi thay đổi ứng dụng như giao diện hoặc xử lý logic
15.4.2. Tầng Model và View có thể thay đổi, chỉnh sửa 1 cách độc lập. vậy nên ta có thể tạo các giao tiếp thông minh hơn chỉ bằng cách thay đổi view, hoặc cũng có thể thay thế Database bằng cách sử dụng Wed Service...
15.5. PDO
15.5.1. là một extentions để tối ưu hơn trong việc truy xuất Database.
15.5.2. cung cấp các cơ chế để thao tác với Database thông qua các đới tượng
15.5.3. Kết nối đến CSDL
15.5.3.1. $conn = new PDO('mysql:host = localhost, dbname = 'name', $username, $password
15.5.4. Thao tác
15.5.4.1. thêm mới
15.5.4.2. cập nhật
15.5.4.3. đọc dữ liệu
15.5.4.3.1. fetch_obj
15.5.4.3.2. fetch_class
15.5.5. dùng exceptions PDO để xử lý các ngoại lệ