Bài giảng Lập trình web - Chương 2: Tổng quan về ngôn ngữ PHP - ThS.Trần Phi Hảo

ppt 54 trang phuongnguyen 3290
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình web - Chương 2: Tổng quan về ngôn ngữ PHP - ThS.Trần Phi Hảo", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptbai_giang_lap_trinh_web_chuong_2_tong_quan_ve_ngon_ngu_php_t.ppt

Nội dung text: Bài giảng Lập trình web - Chương 2: Tổng quan về ngôn ngữ PHP - ThS.Trần Phi Hảo

  1. CHƯƠNG 2: TỔNG QUAN VỀ NGÔN NGỮ PHP 2.1. GIỚI THIỆU VỀ PHP 2.2. CÚ PHÁP 2.3. CÁC KIỂU DỮ LIỆU 2.4. BIẾN VÀ HẰNG 2.5. PHÉP GÁN VÀ CÁC PHÉP TOÁN 2.6. TRUY CẬP ĐẾN FORM 2.7. CÁC CẤU TRÚC ĐIỀU KHIỂN 05/07/2021 Lập trình Web 1
  2. 2.1. GIỚI THIỆU VỀ PHP q Php là gì? q Đặc điểm của file php q Lịch sử phát triển q Download, cài đặt và cấu hình ứng dụng php q Quá trình thông dịch trang php 05/07/2021 Lập trình Web 2
  3. Php là gì? q PHP được viết tắt của chữ Personal Home Page q Là ngôn ngữ kịch bản trình chủ (Server Script) chạy trên phía máy chủ (Server side) giống như các server script khác: asp, jsp, cold fusion, q Là kịch bản cho phép chúng ta xây dựng ứng dụng web trên mạng internet hay intranet tương tác với mọi cơ sở dữ liệu như: Informix, MySQL, PostgreSQL, Oracle, Sybase, SQL Server, q Là phần mềm mở, dùng cho mục đích tổng quát. Thích hợp với Web và có thể dễ dàng nhúng vào trang HTML 05/07/2021 Lập trình Web 3
  4. Đặc điểm của file php q Các file PHP trả về kết quả cho trình duyệt là một trang thuần HTML q Các file PHP có thể chứa văn bản (Text), các thẻ HTML (HTML tags) và các đoạn mã kịch bản (Script) q Các file PHP có phần mở rộng là: .php, .php3, . Phpml q Lưu ý rằng, từ phiên bản 4.0 trở về sau mới hỗ trợ session 05/07/2021 Lập trình Web 4
  5. Lịch sử phát triển q Năm 1995, phiên bản đầu tiên ra đời có tên là PHP/FI được viết bởi nhà phát triển phần mềm Rasmus Lerdorf. q PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một số các chức năng cơ bản của PHP ngày nay. q Năm 1997, phiên bản PHP/FI 2.0 ra đời nhưng chỉ được công bố dưới dạng các bản beta. Đến tháng 11 năm 1997 mới chính thức được công bố q Năm 1998, phiên bản PHP 3.0 được chính thức công bố 05/07/2021 Lập trình Web 5
  6. Lịch sử phát triển q Andi Gutmans và Zeev Suraski tiếp tục hoàn tất phần lõi nhằm cải tiến PHP 3.0. q Tháng 05/2000, phiên bản PHP 4.0 với hàng loạt các tính năng mới bổ sung, đã chính thức được công bố q 29/06/2003, phiên bản PHP 5 Beta 1 đã chính thức được công bố q Tháng 10/2003, phiên bản Beta 2 ra mắt với sự xuất hiện của hai tính năng rất được chờ đợi: Iterators, Reflection nhưng namespace một tính năng gây tranh cãi khác đã bị loại khỏi mã nguồn 05/07/2021 Lập trình Web 6
  7. Lịch sử phát triển q Ngày 21/12/2003: phiên bản PHP 5 Beta 3 đã được công bố q Ngày 13/07/2004, phiên bản PHP 5 bản chính thức đã ra mắt sau một chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC 1, RC2, RC3 q Ngày 14/07/2005, phiên bản PHP 5.1 Beta 3 được PHP Team công bố đánh dấu sự chín muồi mới của PHP với sự có mặt của PDO q Hiện nay, phiên bản tiếp theo của PHP đang được phát triển, PHP 6 bản sử dụng thử đã có thể được download tại địa chỉ 05/07/2021 Lập trình Web 7
  8. Download, cài đặt và cấu hình ứng dụng php q Nếu máy chủ chưa được hỗ trợ PHP thì cần phải cài đặt nó. q Download miễn phí tại: q Để truy cập được vào Web server có hỗ trợ PHP, cần: q Cài đặt Apache hoặc IIS trên máy chủ, cài PHP, MySQL q Hoặc thuê một Web hosting có hỗ trợ PHP và MySQL q Có thể sử dụng một số phần mềm tích hợp sẵn Apache, php, MySQL. Chẳng hạn, như XAMPP download tại: www.apachefriends.org 05/07/2021 Lập trình Web 8
  9. Quá trình thông dịch trang php q Php là kịch bản trình chủ được chạy trên nền php Engine, cùng với ứng dụng Web Server để quản lý chúng. q Khi trang php được gọi, Web Server triệu gọi php Engine để thông dịch, dịch trang php và trả về kết quả cho người sử dụng là một trang thuần HTML q Ta có mô hình như sau: 05/07/2021 Lập trình Web 9
  10. Quá trình thông dịch trang php 05/07/2021 Lập trình Web 10
  11. 2.2. CÚ PHÁP q Ta có thể nhúng các lệnh của php vào trang HTML q Đoạn mã php luôn được bắt đầu và kết thúc bởi cặp thẻ theo cú pháp: q Đoạn mã php có thể đặt bất kỳ đâu trong tài liệu q Thông thường một trang php bao gồm các thẻ HTML như một trang HTML nhưng có thêm các đoạn mã php 05/07/2021 Lập trình Web 11
  12. 2.2. CÚ PHÁP Ví dụ: Ta có đoạn mã php hiển thị câu “Learning php programing” lên trình duyệt như sau: 05/07/2021 Lập trình Web 12
  13. 2.2. CÚ PHÁP 05/07/2021 Lập trình Web 13
  14. 2.2. CÚ PHÁP q Mỗi câu lệnh trong php được kết thúc bằng dấu (;). Dấu này là một toán tử dùng để phân biệt các cấu trúc với nhau q Có hai câu lệnh cơ bản dùng để hiển thị các câu text ra browser là : echo và print 05/07/2021 Lập trình Web 14
  15. 2.2. CÚ PHÁP Lưu ý: q Các file php phải có phần mở rộng là .php. Nếu phần mở rộng là .html thì đoạn mã php sẽ không được thực thi q Có thể viết các câu chú thích cho đoạn mã php. Có hai cách viết là: /* chú thích */ hoặc // chú thích q Đoạn mã php cũng có thể đặt trong cặp thẻ: 05/07/2021 Lập trình Web 15
  16. 2.2. CÚ PHÁP Ví dụ: Ta có trang vidu2.php như sau: Example Welcome to! Php programing ";?> Mysql database "; ?> And web server design 05/07/2021 Lập trình Web 16
  17. 2.2. CÚ PHÁP 05/07/2021 Lập trình Web 17
  18. 2.3. CÁC KIỂU DỮ LIỆU q Php hỗ trợ 5 kiểu dữ liệu như sau: q Integer: sử dụng cho giá trị có kiểu dữ liệu là số nguyên q Double: sử dụng cho giá trị có kiểu dữ liệu là số thực q String: sử dụng cho các giá trị có kiểu dữ liệu là chuỗi và ký tự q Array: sử dụng cho các giá trị có kiểu dữ liệu là mảng q Object: sử dụng cho các giá trị có kiểu dữ liệu là đối tượng của lớp 05/07/2021 Lập trình Web 18
  19. 2.4. BIẾN VÀ HẰNG TRONG PHP q Biến q Hằng 05/07/2021 Lập trình Web 19
  20. Biến q Biến dùng để lưu giá trị như: xâu, số, ký tự, mảng, q Tất cả các biến trong php đều bắt đầu bằng ký hiệu $ q Biến được khai báo tự động khi sử dụng (gán giá trị) cho nó theo cú pháp: $Tên_biến = Giá_trị; q Php là ngôn ngữ không định kiểu, nghĩa là không cần khai báo kiểu cho biến. Php sẽ chuyển kiểu của biến một cách tự động tùy thuộc vào giá trị của nó q Lưu ý: Quy tắc đặt tên biến trong php giống như trong C, C++, 05/07/2021 Lập trình Web 20
  21. Biến Ví dụ: Ta có trang vidu3.php như sau: Example 3 "; $a = 5; $b = 10; $c = $a*$b; echo "Tich a*b = $c"; ?> 05/07/2021 Lập trình Web 21
  22. Biến 05/07/2021 Lập trình Web 22
  23. Biến q Phạm vi của biến: q Nếu biến được khai báo trong Script thì có phạm vi trong toàn Script q Nếu biến được khai báo trong một hàm nào đó thì chỉ có tác dụng trong hàm đó q Kiểm tra/ loại bỏ biến: q Sử dụng hàm isset(Tên_biến) để kiểm tra biến đó có tồn tại hay không? Kết quả trae về kiểu boolean q Sử dụng hàm unset(Tên_biến) để loại bỏ biến đang tồn tại ra khỏi trạng thái thực thi q Sử dụng hàm empty(Tên_biến) để kiểm tra biến tồn tại và không rỗng 05/07/2021 Lập trình Web 23
  24. Biến Ví dụ: Xét đoạn mã sau đây: "; echo isset($a)." "; unset($a); echo isset($a)." "; ?> 05/07/2021 Lập trình Web 24
  25. Biến q Ngoài ra, để kiểm tra kiểu dữ liệu của biến ta có thể sử dụng các hàm sau: q is_array() q is_double() q is_float() q is_long() q is_int() q is_string() q is_object() 05/07/2021 Lập trình Web 25
  26. Hằng q Hằng trong php được khai báo giống như các ngôn ngữ C, C++ q Tên hằng thường được viết bằng chữ hoa q Cú pháp khai báo hằng như sau: define (“Tên_hằng”, giá_trị); hoặc define (Tên_hằng, giá trị); Ví dụ: Ta có khái báo hằng MAX = 100 như sau: define (“MAX”, 100); define (MAX, 100); 05/07/2021 Lập trình Web 26
  27. 2.5 CÁC PHÉP TOÁN q Phép gán q Các phép toán số học q Các phép toán quan hệ q Các phép toán logic q Phép toán trên chuỗi q Các phép toán tự tăng giảm q Biểu thức điều kiện 05/07/2021 Lập trình Web 27
  28. Phép gán q Phép gán là phép toán cơ bản của mọi ngôn ngữ lập trình. q Phép gán đơn: cú pháp: $Tên_biến = Giá_trị; q Phép gán mở rộng: $Tên_biến pt= Giá_trị; q Trong đó: pt có thể là: +, -, *, /, % 05/07/2021 Lập trình Web 28
  29. Các phép toán số học q Phép toán số học một ngôi: - (đảo dấu) q Phép toán số học hai ngôi: Toán tử Tên Ví dụ + Cộng $a + $b - Trừ $a - $b * Nhân $a * $b / Chia nguyên $a / $b % Chia lấy dư $a % $b 05/07/2021 Lập trình Web 29
  30. Các phép toán quan hệ q Các phép toán quan hệ trả về kết quả là true hoặc false Toán tử Tên Ví dụ Lớn hơn $a > $b >= Lớn hơn hoặc bằng $a>= $b == Bằng 123 = “123” === Bằng và cùng kiểu dữ liệu 123 = “123” != Khác 123 != “123” !== Khác kiểu dữ liệu 123!==“123” “123” 05/07/2021 Lập trình Web 30
  31. Các phép toán logic q Giống như các phép toán quan hệ các phép toán logic trả về kết quả là true hoặc false Toán tử Tên Ví dụ && And (và) $a && $b || Or (hoặc) $a or $b ! Not (phủ định) !$b 05/07/2021 Lập trình Web 31
  32. Các phép toán tự tăng giảm q Để tăng (hoặc giảm) giá trị của một biến lên (xuống) một đơn vị có thể sử dụng phép toán tự tăng ++ và tự giảm – q Có hai cách viết phép toán tự tăng giảm: q ++&Tên_biến (hoặc $Tên_biến) q &Tên_biến++ (hoặc $Tên_biến ) q Lưu ý: cần phân biệt hai cách viết trên. 05/07/2021 Lập trình Web 32
  33. Phép toán về chuỗi q Phép cộng chuỗi: Để cộng (ghép) hai chuỗi lại với nhau ta sử dụng dấu chấm (.) Ví dụ: xét đoạn mã sau: Example 4 Let's see how two strings are concatenated 05/07/2021 Lập trình Web 33
  34. Phép toán về chuỗi 05/07/2021 Lập trình Web 34
  35. Biểu thức điều kiện q Cú pháp: Biến = Giá trị 1> Giá trị 2? Giá trị 1: Giá trị 2; Ví dụ: $b? $a: $b; ?> 05/07/2021 Lập trình Web 35
  36. 2.6. TRUY CẬP ĐẾN FORM q Form cùng với các thuộc tính của nó là nơi để người sử dụng nhập dữ liệu vào q Để làm việc với các dữ liệu đó đòi hỏi phải kết nối đến form q Khi làm việc với form thì các phần tử form trên trang html sẽ tự động trở thành biến trong đoạn mã php q Để lấy giá trị từ các phần tử form ta sử dụng các hàm $_GET hoặc $_POST 05/07/2021 Lập trình Web 36
  37. Hàm $_GET q Là hàm xây dựng sẵn dùng để lấy các giá trị từ form có sử dụng method = GET q Thông tin khi truyền đi với phương thức GET sẽ được hiển thị trên Browser’s address bar q Mọi người có thể nhìn thấy thông tin và số ký tự tối đa là 100 q Cú pháp lấy giá trị từ các phần tử form $_GET[“Tên phần tử form”] 05/07/2021 Lập trình Web 37
  38. Hàm $_GET Ví dụ: Ta có trang login.html như sau: Login user: User name: Password: 05/07/2021 Lập trình Web 38
  39. Hàm $_GET Trang display.php như sau: Data on form will be display on browser through php "; echo "Password: ".$_GET["password"]; ?> 05/07/2021 Lập trình Web 39
  40. Hàm $_GET 05/07/2021 Lập trình Web 40
  41. Hàm $_GET 05/07/2021 Lập trình Web 41
  42. Hàm $_POST q Là hàm xây dựng sẵn dùng để lấy các giá trị từ form có sử dụng method = POST q Thông tin khi truyền đi với phương thức POST sẽ không được hiển thị trên Browser’s address bar q Không thể nhìn thấy các thông tin (biến và giá trị) đang truyền. q Cú pháp lấy giá trị từ các phần tử form $_POST[“Tên phần tử form”] Ví dụ: Thiết kế form và trang php để giải quyết bài toán tìm nghiệm của phương trình bậc nhất, bậc hai 05/07/2021 Lập trình Web 42
  43. 2.7 CÁC CẤU TRÚC ĐIỀU KHIỂN q Cấu trúc rẽ nhánh q Cấu trúc lặp 05/07/2021 Lập trình Web 43
  44. Cấu trúc rẽ nhánh q Cấu trúc if: Cú pháp: if (điều kiện) câu lệnh php; Ví dụ: $b) echo "Gia trị lớn nhất là: ".$a; ?> 05/07/2021 Lập trình Web 44
  45. Cấu trúc rẽ nhánh Cấu trúc if else: Cú pháp: if (điều kiện) công việc 1; Else công việc 2; Ví dụ: $b) echo "Gia trị lớn nhất là: ".$a; else echo "Gia trị lớn nhất là: ".$b;?> 05/07/2021 Lập trình Web 45
  46. Cấu trúc rẽ nhánh Lưu ý: § Ta có thể sử dụng cấu trúc if lồng nhau khi có nhiều hơn 2 sự lựa chọn § Nếu cần thực thi nhiều câu lệnh thì cần đặt nó trong cặp dấu ngoặc móc { } 05/07/2021 Lập trình Web 46
  47. Cấu trúc rẽ nhánh q Cấu trúc switch: sử dụng khi có nhiều sự lựa chọn Cú pháp: switch (n) {case label 1: code to be executed if n=label 1; break; case label 2: code to be executed if n=label 2; break; case label n: code to be executed if n=label n; break; default: code to be executed if n is different from label 1 to label n; } 05/07/2021 Lập trình Web 47
  48. Cấu trúc rẽ nhánh Ví dụ: "; break; case "insert":echo"chèn dữ liệu "; break; case "delete":echo"xoa dữ liệu "; break; case "save":echo"xóa dữ liệu "; break; } ?> 05/07/2021 Lập trình Web 48
  49. Cấu trúc rẽ nhánh Ví dụ: "; break; case "insert":echo"chèn dữ liệu "; break; case "delete":echo"xoa dữ liệu "; break; case "save":echo"xóa dữ liệu "; break; } ?> 05/07/2021 Lập trình Web 49
  50. Cấu trúc rẽ nhánh Ví dụ: 05/07/2021 Lập trình Web 50
  51. Cấu trúc lặp q Cấu trúc While: Cú pháp: while (condition) { code to be executed; } q Cấu trúc do while: Cú pháp: do { code to be executed; } while (condition); 05/07/2021 Lập trình Web 51
  52. Cấu trúc rẽ nhánh Ví dụ: "; $a++; } ?> 05/07/2021 Lập trình Web 52
  53. Cấu trúc lặp q Cấu trúc for: Cú pháp: for (init; condition; increment) { code to be executed; } q Cấu trúc foreach: sử dụng khi lặp trên mảng Cú pháp: foreach ($array as $value) { code to be executed; } 05/07/2021 Lập trình Web 53
  54. Cấu trúc rẽ nhánh Ví dụ: "HoChiMinh", "HN" => "HaNoi", "HP" => "HaiPhong", "DN" => "DaNang"); foreach($tpho1 as $tp) { echo $tp." "; } foreach($tpho2 as $chiso=>$giatri) echo $chiso.":".$giatri." "; ?> 05/07/2021 Lập trình Web 54