SlideShare une entreprise Scribd logo
1  sur  37
Ngôn ngữ PHP
                            Đinh Xuân Lâm
               Bộ môn Mạng và Truyền Thông
                   Khoa CNTT-ĐH CNTT & TT
Giới thiệu

 PHP=PHP: Hypertext Preprocessor. Tên
  gốc là Personal Home Page
 Là ngôn ngữ để viết các trang web động
 Bộ biên dịch PHP là phần mềm mã nguồn
  mở, có thể chạy cùng với các web server
  Apache, IIS,…
 Thường kết hợp với hệ quản trị CSDL
  MySQL
Nhúng PHP vào HTML

 Có thể nhúng mã PHP vào mọi vị trí trong trang
  HTML.
 Đoạn mã PHP được đặt giữa: <?php … ?>:
  <?php
       //Đoạn lệnh PHP ở đây
  ?>
 Một cấu trúc lệnh thông thường của PHP có thể
  được tách làm nhiều phần, mỗi phần đặt giữa <?
  php…?>
 Kết quả do đoạn lệnh PHP đưa ra được đưa vào vị
  trí mà đoạn lệnh PHP đang chiếm chỗ.
Đặc điểm PHP

 Có khả năng hướng đối tượng
 Thông dịch
 Phân biệt chữ hoa/chữ thường
 Mỗi lệnh kết thúc bởi chấm phảy (;)
Cú pháp ngôn ngữ
Chú thích trong PHP

 //Dòng chú thích
 #Dòng chú thích
 /*
  Đoạn chú thích trên nhiều dòng
  */
Biến

 Phân biệt chữ hoa, chữ thường
 Bắt đầu bằng dấu dollar($), tiếp ngay sau $ là
  tên biến.
 Tên biến bao gồm chữ cái, chữ số, dấu gạch nối
  (_) và phải bắt đầu bằng chữ cái hoặc dấu gạch
  nối.
 Ví dụ: $a, $b,…
 Biến không cần khai báo (được tự động khai báo
  vào lần gán giá trị đầu tiên).
 Việc sử dụng biến chưa khởi tạo sẽ gây lỗi.
Biến động (biến biến)

 Cho phép sử dụng giá trị của biến làm tên
  biến khác.
 VD:
  $a = “hello”;
  $$a = “world”; //$hello = “world”
Kiểu dữ liệu

 PHP hỗ trợ 4 kiểu
  – Số
  – Chuỗi
  – Logic
  – Mảng & đối tượng
Kiểu số

 Số nguyên từ -231 đến 231-1
  – Hệ thập phân: VD: $a = 16;
  – Hệ 16 (hexa): VD: $a=0x10;
  – Hệ 8 (bát phân): VD: 020;
 Số thực (thập phân): từ 1.7E-308 đến
  1.7E+308
  – Biểu diễn: $a = 0.017
  – Dạng khoa học: $a = 17.0E-03
Kiểu chuỗi

 Giới hạn bởi nháy đơn (‘) hoặc kép (“)
 Chuỗi đặt trong nháy kép bị thay thế và
  xử lý ký tự thoát. Trong nháy đơn thì
  không.
 Ví dụ:
  $a = “Hello”;
  $b = “$a world”; //tương đương $b=“Hello world”
  $c = ‘$a world’; //$c=‘$a world’ (không thay đổi)
Kiểu chuỗi (tiếp)

 Để làm rõ các biến trong chuỗi, cần bao
  biến vào giữa cặp ngoặc nhọn { }
  $a = “He”;
  $b = “$allo”; //lỗi vì PHP hiểu là $allo
  $c = “{$a}llo”; //đúng ($c = “Hello”)
 Biến mảng, biến biến, biến trong tên có dấu gạch
  nối hoặc dấu chấm khi viết trong chuỗi bắt buộc
  phải bao lại.
Kiểu chuỗi (tiếp)

 Ký tự thoát: 
  – Sử dụng để viết các ký tự đặc biệt trong chuỗi
  – VD:
  Cần có chuỗi: Người ta nói “PHP rất tốt”
  $a = “Người ta nói “PHP rất tốt””; //Sai
  $a = “Người ta nói “PHP rất tốt””; //Đúng
  – Một số ký tự phải sử dụng ký tự thoát: $, , “
  – Ngoài ra:
     • n: Xuống dòng
     • r: trở về đầu dòng
     • t: dấu tab
     • …
Kiểu logic

 Có 2 trạng thái: true và false
Kiểu mảng
 Cho phép chứa nhiều giá trị dữ liệu được đánh chỉ
  mục bằng số hay chuỗi.
 Để truy cập vào 1 phần tử, đặt chỉ số trong [ ]
 Ví dụ:
  $a[0] = “Xin”;
  $a[1] = “Chào”;
 Có thể sử dụng chỉ số không liên tiếp
 Có thể thêm phần tử vào cuối mảng bằng cách bỏ
  chỉ số:
  $a[0] = “Xin”;
  $a[] = “Chào”; // $a[1]
  $a[] = “Bạn”; // $a[2]
Kiểu mảng (tiếp)

 Chỉ số chuỗi:
  $a[“ten”] = “Hồng”;
  $a[“mau”] = “Đỏ”;
 Mảng nhiều chiều
  – Được coi là mảng của mảng
  – Ví dụ:
  $a[0][0] = “TT”;
  $a[0][1] = “Họ tên”;
  $a[1][0] = 1;
  $a[1][1] = “Nguyen Van A”;
Kiểu mảng (tiếp)
 Khởi tạo mảng bằng hàm array()
  – Chỉ số mặc định:
    $a=array(“xin”, “chào”, “bạn”);
    /*tương đương với
    $a[]=“xin”;
    $a[]=“chào”;
    $a[]=“bạn”;*/
  – Chỉ số mặc định với chỉ số đầu khác 0:
  $a=array(5=>“xin”, “chào”, “bạn”);
  /*tương đương với
    $a[5]=“xin”;
    $a[]=“chào”;
    $a[]=“bạn”;*/
Kiểu mảng (tiếp)

 Khởi tạo mảng bằng hàm array()(tiếp)
  – Chỉ số chuỗi:
  $a=array(“ten”=>”Hồng”, “mau”=>”Đỏ”);
  /*Tương đương với:
  $a[“ten”] = “Hồng”;
  $a[“mau”] = “Đỏ”;*/
  – Mảng nhiều chiều:
  $a = array(
       array(“TT”, “Họ tên”),
       array(1,”Nguyễn Văn A”)
  );
Ép kiểu và kiểm tra kiểu

 Sử dụng cú pháp       Ký hiệu             Ý nghĩa kiểu
  tương tự C/C++
  $x = “123abc”; //$x   (int), (integer)    Số nguyên
    là chuỗi            (real), (double),
                                            Số thập phân
  $x =(int) ”123abc”;   (float)
  //$x là số
                        (string)            Chuỗi
    nguyên=123
 Các kiểu (bảng)       (array)             Mảng
 Kiểm tra kiểu:
                        (object)            Đối tượng
  gettype(),
  is_bool(),            (bool), (boolean)   Logic
  is_long(), …
                                            NULL, tương tự
                        (unset)
                                            như gọi unset()
Toán tử

 Kiểu số:
  – Kết hợp: +, -, *, /, %
  – Tăng giảm: ++, --
     VD: $a++; $a--; ++$a; --$a;

 Chuỗi: Toán tử chấm (.)
 Logic: AND (&&), OR (||), XOR, !
 Gán: =, +=, -=, .=
 So sánh: ==, ===, !=, <, >, <=, >=
Các cấu trúc điều khiển
Rẽ nhánh if

if (BTLG)            if (BTLG1)

  lệnh;                lệnh1;
                     elseif (BTLG2)
if (BTLG)
                       lệnh2;
  lệnh1;
                     elseif (BTLG3)
else
                       lệnh3;
  lệnh2;
                     else
                       lệnhkhác;
$biến= BTLG?Giá_trị1:Giá_trị2
switch

switch ($biến){
    case (giá_trị1):
     các_lệnh1;
    case (giá_trị2):
     các_lệnh2;
    default:
     các_lệnh_khác;
}
Lặp không xác định


while (BTLG)     do {
  lệnh;            các_lệnh
                 } while (BTLG);
Lặp xác định


for (lệnh_khởi_tạo; BTLG; lệnh2)
  lệnh;

foreach ($biến_mảng as $giá_trị)
  lệnh;

foreach ($biến_mảng as $khoá=>$giá_trị)
  lệnh;
break và continue

 break: Kết thúc khối lệnh for, while,
  do-while hoặc switch
 continue: bỏ qua phần sau continue
  trong vòng lặp, chuyển sang vòng lặp tiếp.
Hàm tự tạo

 Khai báo hàm
 function tên_hàm(ts1, ts2,…, tsn) {
     //các lệnh trong thân hàm
 }
 Để trả ra giá trị cho hàm ta sử dụng lệnh
  return biểu_thức;
 Để thoát khỏi hàm:
     – Sử dụng return
     – exit;
Hàm tự tạo (tt)

 Gọi hàm:
 tên_hàm(gt1, gt2,… , gtn);
 Chú ý:
  – Nếu hàm không có tham số, khi khai báo hàm,
    gọi hàm vẫn phải giữ lại ()
  – Để khai báo hàm với các tham số mặc định,
    khi khai báo ta đưa ngay giá trị tham số vào.
   function tên_hàm(ts1=gt1, ts2=gt2,…)
Phạm vi biến

 Phạm vi biến là phạm vi ở đó biến xác định. Trong
  PHP, biến có 3 phạm vi:
  – Local variables: biến cục bộ:
     • Khởi tạo trong hàm
     • có tác dụng từ khi khởi tạo đến hết hàm.
  – Global variables: Biến toàn cục:
     • Khởi tạo ở ngoài hàm
     • Có tác dụng từ khi khởi tạo đến hết file trừ ở trong hàm.
     • Để đưa 1 biến toàn cục vào trong hàm, sử dụng khai báo
       global $biến1, $biến2,…; hoặc mảng $_GLOBAL
  – Super Global Variables: Siêu toàn cục: Một số biến có
    sẵn của PHP: $_SERVER, $_GLOBAL...
Biến được định nghĩa trước
 $_SERVER: mảng chứa các thông tin về headers, paths, and script locations
    – PHP_SELF
    – REQUEST_METHOD
    – SERVER_NAME
    – SERVER_ADDR: IP server
 $_COOKIE: chứa các giá trị mà scrip phía server có thể lưu trữ và truy xuất
  trên trình duyệt của client
 $_GET: mảng các giá trị của biến được truyền thong qua phương thức HTTP
  GET
 $_POST: tương tự trên
 $_FILES: mảng các tập tin được upload tới máy chủ server
 $_REQUEST: mảng kết hợp của các biến $_GET, $_POST, and $_COOKIE
 $_SESSION: lưu trữ giá trị các biến lien quan tới phiên làm việc của người
  dùng
 $GLOBALS: mảng chưa các biến được định nghĩa với từ khóa global
Biến tĩnh

 Khai báo trong hàm
 Giá trị được lưu trữ qua nhiều lần gọi hàm
 Chỉ được khởi tạo ở lần khai báo đầu tiên
 Để khai báo:
 static $biến_tĩnh=giátrị;
Chèn file

 include(“địa_chỉ_file”);
  – Nếu file chèn vào có lỗi thì cảnh báo lỗi và tiếp
    tục thực hiện file cho tới cuối cùng.
 require(“địa_chỉ_file”);
  – Nếu có lỗi thì báo lỗi và dừng lại, ko thực hiện
    câu lệnh tiếp theo.
 include_once(“địa_chỉ_file”);
  – Chỉ chèn file một lần duy nhất

 require_once(“địa_chỉ_file”);
Hướng đối tượng trong PHP
Định nghĩa lớp

class tên_lớp{
    //thânlớp
}
 Thân lớp gồm có các khai báo dữ liệu,
  phương thức.
 Thân lớp phải được đặt trong 1 khối lệnh
  PHP duy nhất.
    – Các dữ liệu (biến) được khai báo bằng var
    – Các phương thức (hàm) khai báo như thông
      thường.
Đối tượng

 Tạo đối tượng: Sử dụng từ khóa new:
  $biến = new Tên_lớp;
 Truy cập vào phương thức hoặc biến của
  đối tượng: Sử dụng ->:
  $biến->tên_phương_thức
Kế thừa

 Sử dụng từ khóa extends.
 Truy cập vào lớp cha: parent::tên
 Đối tượng $this: Lớp hiện tại.
Vài điểm mới về lớp trong PHP5

 Hạn chế truy cập (public, protected,
  private)
 Phương thức __construct và __destruct
 Biến tĩnh static, hằng trong lớp const có
  thể truy cập mà không cần đối tượng.
 Lớp trừu tượng, phương thức trừu tượng
  abstract
 interface và implement

Contenu connexe

Tendances

Dữ liệu mảng (array)
Dữ liệu mảng (array)Dữ liệu mảng (array)
Dữ liệu mảng (array)Son Nguyen
 
Các hàm thông dụng có sẵn trong php
Các hàm thông dụng có sẵn trong phpCác hàm thông dụng có sẵn trong php
Các hàm thông dụng có sẵn trong phpSon Nguyen
 
Các kiểu dữ liệu (data type)
Các kiểu dữ liệu (data type)Các kiểu dữ liệu (data type)
Các kiểu dữ liệu (data type)Son Nguyen
 
Class và object (lớp và đối tượng
Class và object (lớp và đối tượngClass và object (lớp và đối tượng
Class và object (lớp và đối tượngSon Nguyen
 
Hướng dẫn lập trình CMS Joomla 2.5
Hướng dẫn lập trình CMS Joomla 2.5 Hướng dẫn lập trình CMS Joomla 2.5
Hướng dẫn lập trình CMS Joomla 2.5 ZendVN
 
Chương 2: Ngôn ngữ PHP
Chương 2: Ngôn ngữ PHPChương 2: Ngôn ngữ PHP
Chương 2: Ngôn ngữ PHPHồ Lợi
 
Phong cach lap trinh c++
Phong cach lap trinh c++Phong cach lap trinh c++
Phong cach lap trinh c++ptquang160492
 
Các quy định& chuẩn trong lập trình NukeViet
Các quy định& chuẩn trong lập trình NukeVietCác quy định& chuẩn trong lập trình NukeViet
Các quy định& chuẩn trong lập trình NukeVietVu Thao
 
Ngon ngu c theo chuan ansi
Ngon ngu c theo chuan ansiNgon ngu c theo chuan ansi
Ngon ngu c theo chuan ansiHuynh MVT
 
Tin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4uTin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4uXephang Daihoc
 

Tendances (20)

Lesson 2 lý thuyết
Lesson 2 lý thuyếtLesson 2 lý thuyết
Lesson 2 lý thuyết
 
Dữ liệu mảng (array)
Dữ liệu mảng (array)Dữ liệu mảng (array)
Dữ liệu mảng (array)
 
Các hàm thông dụng có sẵn trong php
Các hàm thông dụng có sẵn trong phpCác hàm thông dụng có sẵn trong php
Các hàm thông dụng có sẵn trong php
 
Các kiểu dữ liệu (data type)
Các kiểu dữ liệu (data type)Các kiểu dữ liệu (data type)
Các kiểu dữ liệu (data type)
 
Class và object (lớp và đối tượng
Class và object (lớp và đối tượngClass và object (lớp và đối tượng
Class và object (lớp và đối tượng
 
9 bash
9 bash9 bash
9 bash
 
Chuong 3 mang
Chuong 3 mangChuong 3 mang
Chuong 3 mang
 
Hướng dẫn lập trình CMS Joomla 2.5
Hướng dẫn lập trình CMS Joomla 2.5 Hướng dẫn lập trình CMS Joomla 2.5
Hướng dẫn lập trình CMS Joomla 2.5
 
Chương 2: Ngôn ngữ PHP
Chương 2: Ngôn ngữ PHPChương 2: Ngôn ngữ PHP
Chương 2: Ngôn ngữ PHP
 
ShellProgramming
ShellProgrammingShellProgramming
ShellProgramming
 
Lesson 2 practice
Lesson 2 practiceLesson 2 practice
Lesson 2 practice
 
String c++
String c++String c++
String c++
 
Phong cach lap trinh c++
Phong cach lap trinh c++Phong cach lap trinh c++
Phong cach lap trinh c++
 
Chuong07 php
Chuong07 phpChuong07 php
Chuong07 php
 
Các quy định& chuẩn trong lập trình NukeViet
Các quy định& chuẩn trong lập trình NukeVietCác quy định& chuẩn trong lập trình NukeViet
Các quy định& chuẩn trong lập trình NukeViet
 
Ngon ngu c theo chuan ansi
Ngon ngu c theo chuan ansiNgon ngu c theo chuan ansi
Ngon ngu c theo chuan ansi
 
Giáo trình MSWLOGO Lớp 5
Giáo trình MSWLOGO Lớp 5Giáo trình MSWLOGO Lớp 5
Giáo trình MSWLOGO Lớp 5
 
PHP Regular expressions
PHP Regular expressionsPHP Regular expressions
PHP Regular expressions
 
Tin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4uTin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4u
 
Web301 slide 3
Web301   slide 3Web301   slide 3
Web301 slide 3
 

En vedette

Php05 xay dungungdung
Php05 xay dungungdungPhp05 xay dungungdung
Php05 xay dungungdungconglongit90
 
Chapter 3 chemistry
Chapter 3 chemistryChapter 3 chemistry
Chapter 3 chemistrywikiuser0015
 
Hubbis presentation v
Hubbis presentation vHubbis presentation v
Hubbis presentation vAntony Bell
 
Php04 ph pva-mysql
Php04 ph pva-mysqlPhp04 ph pva-mysql
Php04 ph pva-mysqlconglongit90
 
Php03 php trong-laptrinhwebdong
Php03 php trong-laptrinhwebdongPhp03 php trong-laptrinhwebdong
Php03 php trong-laptrinhwebdongconglongit90
 
Walk worksurfaces
Walk worksurfacesWalk worksurfaces
Walk worksurfacesridhoa
 
investing in Agarwood with Treedom and Dad's Army
investing in Agarwood with Treedom and Dad's Armyinvesting in Agarwood with Treedom and Dad's Army
investing in Agarwood with Treedom and Dad's ArmyAntony Bell
 
Cai Dat SSL tren WEB SERVER
Cai Dat SSL tren WEB SERVERCai Dat SSL tren WEB SERVER
Cai Dat SSL tren WEB SERVERconglongit90
 
Asia forestry management investing in agarwood
Asia forestry management   investing in agarwoodAsia forestry management   investing in agarwood
Asia forestry management investing in agarwoodAntony Bell
 
Treedom investments arrf investment presentation - final march 2012
Treedom investments   arrf investment presentation - final march 2012Treedom investments   arrf investment presentation - final march 2012
Treedom investments arrf investment presentation - final march 2012Antony Bell
 
Treedom investments this...
Treedom investments this...Treedom investments this...
Treedom investments this...Antony Bell
 
How to Invest in Agarwood
How to Invest in AgarwoodHow to Invest in Agarwood
How to Invest in AgarwoodAntony Bell
 
TIM HIEU SSL VA UNG DUNG TREN WEB SERVER
TIM HIEU SSL VA UNG DUNG TREN WEB SERVERTIM HIEU SSL VA UNG DUNG TREN WEB SERVER
TIM HIEU SSL VA UNG DUNG TREN WEB SERVERconglongit90
 
Giao thức bảo mật SSL
Giao thức bảo mật SSLGiao thức bảo mật SSL
Giao thức bảo mật SSLconglongit90
 
Agarwood investment-brochure
Agarwood investment-brochureAgarwood investment-brochure
Agarwood investment-brochureAntony Bell
 

En vedette (18)

Php05 xay dungungdung
Php05 xay dungungdungPhp05 xay dungungdung
Php05 xay dungungdung
 
Uso adecuado de las tic
Uso adecuado de las ticUso adecuado de las tic
Uso adecuado de las tic
 
Php01 tong quan
Php01 tong quanPhp01 tong quan
Php01 tong quan
 
Chapter 3 chemistry
Chapter 3 chemistryChapter 3 chemistry
Chapter 3 chemistry
 
Hubbis presentation v
Hubbis presentation vHubbis presentation v
Hubbis presentation v
 
Php04 ph pva-mysql
Php04 ph pva-mysqlPhp04 ph pva-mysql
Php04 ph pva-mysql
 
Php03 php trong-laptrinhwebdong
Php03 php trong-laptrinhwebdongPhp03 php trong-laptrinhwebdong
Php03 php trong-laptrinhwebdong
 
Walk worksurfaces
Walk worksurfacesWalk worksurfaces
Walk worksurfaces
 
investing in Agarwood with Treedom and Dad's Army
investing in Agarwood with Treedom and Dad's Armyinvesting in Agarwood with Treedom and Dad's Army
investing in Agarwood with Treedom and Dad's Army
 
Cai Dat SSL tren WEB SERVER
Cai Dat SSL tren WEB SERVERCai Dat SSL tren WEB SERVER
Cai Dat SSL tren WEB SERVER
 
Asia forestry management investing in agarwood
Asia forestry management   investing in agarwoodAsia forestry management   investing in agarwood
Asia forestry management investing in agarwood
 
Treedom investments arrf investment presentation - final march 2012
Treedom investments   arrf investment presentation - final march 2012Treedom investments   arrf investment presentation - final march 2012
Treedom investments arrf investment presentation - final march 2012
 
Treedom investments this...
Treedom investments this...Treedom investments this...
Treedom investments this...
 
How to Invest in Agarwood
How to Invest in AgarwoodHow to Invest in Agarwood
How to Invest in Agarwood
 
TIM HIEU SSL VA UNG DUNG TREN WEB SERVER
TIM HIEU SSL VA UNG DUNG TREN WEB SERVERTIM HIEU SSL VA UNG DUNG TREN WEB SERVER
TIM HIEU SSL VA UNG DUNG TREN WEB SERVER
 
Tối ưu hóa
Tối ưu hóaTối ưu hóa
Tối ưu hóa
 
Giao thức bảo mật SSL
Giao thức bảo mật SSLGiao thức bảo mật SSL
Giao thức bảo mật SSL
 
Agarwood investment-brochure
Agarwood investment-brochureAgarwood investment-brochure
Agarwood investment-brochure
 

Similaire à Php02 ngon nguphp

Lập trình Shell 1.pdf
Lập trình Shell 1.pdfLập trình Shell 1.pdf
Lập trình Shell 1.pdfCuongLy23
 
PHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptx
PHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptx
PHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxKhnhVi24
 
LP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdfLP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdfChuong
 
Các ví dụ về cách viết và sử dụng chương trình con
Các ví dụ về cách viết và sử dụng chương trình conCác ví dụ về cách viết và sử dụng chương trình con
Các ví dụ về cách viết và sử dụng chương trình conNhungoc Phamhai
 
Lec3. Ham.pdf
Lec3. Ham.pdfLec3. Ham.pdf
Lec3. Ham.pdfKinHongnh
 
Bai giangtrenlop
Bai giangtrenlopBai giangtrenlop
Bai giangtrenlopHồ Lợi
 
Thdc3 Lap Trinh C
Thdc3 Lap Trinh CThdc3 Lap Trinh C
Thdc3 Lap Trinh Cquyloc
 
Hàm và Chuỗi
Hàm và ChuỗiHàm và Chuỗi
Hàm và Chuỗipnanhvn
 
3 Function
3 Function3 Function
3 FunctionCuong
 
Speaker dang minh tuan javascript for php developer
Speaker dang minh tuan   javascript for php developerSpeaker dang minh tuan   javascript for php developer
Speaker dang minh tuan javascript for php developerAiTi Education
 
Javascript for php developer
Javascript for php developerJavascript for php developer
Javascript for php developerDang Tuan
 
3 Function
3 Function3 Function
3 FunctionCuong
 

Similaire à Php02 ngon nguphp (20)

Lập trình Shell 1.pdf
Lập trình Shell 1.pdfLập trình Shell 1.pdf
Lập trình Shell 1.pdf
 
9 bash
9 bash9 bash
9 bash
 
Java Tieng Viet
Java Tieng VietJava Tieng Viet
Java Tieng Viet
 
PHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptx
PHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptx
PHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptx
 
LP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdfLP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdf
 
Hop ngu mips
Hop ngu mipsHop ngu mips
Hop ngu mips
 
python03.pdf
python03.pdfpython03.pdf
python03.pdf
 
Hàm can bản
Hàm can bảnHàm can bản
Hàm can bản
 
Các ví dụ về cách viết và sử dụng chương trình con
Các ví dụ về cách viết và sử dụng chương trình conCác ví dụ về cách viết và sử dụng chương trình con
Các ví dụ về cách viết và sử dụng chương trình con
 
Lec3. Ham.pdf
Lec3. Ham.pdfLec3. Ham.pdf
Lec3. Ham.pdf
 
Bai giangtrenlop
Bai giangtrenlopBai giangtrenlop
Bai giangtrenlop
 
Thdc3 Lap Trinh C
Thdc3 Lap Trinh CThdc3 Lap Trinh C
Thdc3 Lap Trinh C
 
Hàm và Chuỗi
Hàm và ChuỗiHàm và Chuỗi
Hàm và Chuỗi
 
3 Function
3 Function3 Function
3 Function
 
Speaker dang minh tuan javascript for php developer
Speaker dang minh tuan   javascript for php developerSpeaker dang minh tuan   javascript for php developer
Speaker dang minh tuan javascript for php developer
 
Javascript for php developer
Javascript for php developerJavascript for php developer
Javascript for php developer
 
Chuong 2
Chuong 2Chuong 2
Chuong 2
 
C3-Javascript.pdf
C3-Javascript.pdfC3-Javascript.pdf
C3-Javascript.pdf
 
3 Function
3 Function3 Function
3 Function
 
Pointer
PointerPointer
Pointer
 

Php02 ngon nguphp

  • 1. Ngôn ngữ PHP Đinh Xuân Lâm Bộ môn Mạng và Truyền Thông Khoa CNTT-ĐH CNTT & TT
  • 2. Giới thiệu  PHP=PHP: Hypertext Preprocessor. Tên gốc là Personal Home Page  Là ngôn ngữ để viết các trang web động  Bộ biên dịch PHP là phần mềm mã nguồn mở, có thể chạy cùng với các web server Apache, IIS,…  Thường kết hợp với hệ quản trị CSDL MySQL
  • 3. Nhúng PHP vào HTML  Có thể nhúng mã PHP vào mọi vị trí trong trang HTML.  Đoạn mã PHP được đặt giữa: <?php … ?>: <?php //Đoạn lệnh PHP ở đây ?>  Một cấu trúc lệnh thông thường của PHP có thể được tách làm nhiều phần, mỗi phần đặt giữa <? php…?>  Kết quả do đoạn lệnh PHP đưa ra được đưa vào vị trí mà đoạn lệnh PHP đang chiếm chỗ.
  • 4. Đặc điểm PHP  Có khả năng hướng đối tượng  Thông dịch  Phân biệt chữ hoa/chữ thường  Mỗi lệnh kết thúc bởi chấm phảy (;)
  • 6. Chú thích trong PHP  //Dòng chú thích  #Dòng chú thích  /* Đoạn chú thích trên nhiều dòng */
  • 7. Biến  Phân biệt chữ hoa, chữ thường  Bắt đầu bằng dấu dollar($), tiếp ngay sau $ là tên biến.  Tên biến bao gồm chữ cái, chữ số, dấu gạch nối (_) và phải bắt đầu bằng chữ cái hoặc dấu gạch nối.  Ví dụ: $a, $b,…  Biến không cần khai báo (được tự động khai báo vào lần gán giá trị đầu tiên).  Việc sử dụng biến chưa khởi tạo sẽ gây lỗi.
  • 8. Biến động (biến biến)  Cho phép sử dụng giá trị của biến làm tên biến khác.  VD: $a = “hello”; $$a = “world”; //$hello = “world”
  • 9. Kiểu dữ liệu  PHP hỗ trợ 4 kiểu – Số – Chuỗi – Logic – Mảng & đối tượng
  • 10. Kiểu số  Số nguyên từ -231 đến 231-1 – Hệ thập phân: VD: $a = 16; – Hệ 16 (hexa): VD: $a=0x10; – Hệ 8 (bát phân): VD: 020;  Số thực (thập phân): từ 1.7E-308 đến 1.7E+308 – Biểu diễn: $a = 0.017 – Dạng khoa học: $a = 17.0E-03
  • 11. Kiểu chuỗi  Giới hạn bởi nháy đơn (‘) hoặc kép (“)  Chuỗi đặt trong nháy kép bị thay thế và xử lý ký tự thoát. Trong nháy đơn thì không.  Ví dụ: $a = “Hello”; $b = “$a world”; //tương đương $b=“Hello world” $c = ‘$a world’; //$c=‘$a world’ (không thay đổi)
  • 12. Kiểu chuỗi (tiếp)  Để làm rõ các biến trong chuỗi, cần bao biến vào giữa cặp ngoặc nhọn { } $a = “He”; $b = “$allo”; //lỗi vì PHP hiểu là $allo $c = “{$a}llo”; //đúng ($c = “Hello”)  Biến mảng, biến biến, biến trong tên có dấu gạch nối hoặc dấu chấm khi viết trong chuỗi bắt buộc phải bao lại.
  • 13. Kiểu chuỗi (tiếp)  Ký tự thoát: – Sử dụng để viết các ký tự đặc biệt trong chuỗi – VD: Cần có chuỗi: Người ta nói “PHP rất tốt” $a = “Người ta nói “PHP rất tốt””; //Sai $a = “Người ta nói “PHP rất tốt””; //Đúng – Một số ký tự phải sử dụng ký tự thoát: $, , “ – Ngoài ra: • n: Xuống dòng • r: trở về đầu dòng • t: dấu tab • …
  • 14. Kiểu logic  Có 2 trạng thái: true và false
  • 15. Kiểu mảng  Cho phép chứa nhiều giá trị dữ liệu được đánh chỉ mục bằng số hay chuỗi.  Để truy cập vào 1 phần tử, đặt chỉ số trong [ ]  Ví dụ: $a[0] = “Xin”; $a[1] = “Chào”;  Có thể sử dụng chỉ số không liên tiếp  Có thể thêm phần tử vào cuối mảng bằng cách bỏ chỉ số: $a[0] = “Xin”; $a[] = “Chào”; // $a[1] $a[] = “Bạn”; // $a[2]
  • 16. Kiểu mảng (tiếp)  Chỉ số chuỗi: $a[“ten”] = “Hồng”; $a[“mau”] = “Đỏ”;  Mảng nhiều chiều – Được coi là mảng của mảng – Ví dụ: $a[0][0] = “TT”; $a[0][1] = “Họ tên”; $a[1][0] = 1; $a[1][1] = “Nguyen Van A”;
  • 17. Kiểu mảng (tiếp)  Khởi tạo mảng bằng hàm array() – Chỉ số mặc định: $a=array(“xin”, “chào”, “bạn”); /*tương đương với $a[]=“xin”; $a[]=“chào”; $a[]=“bạn”;*/ – Chỉ số mặc định với chỉ số đầu khác 0: $a=array(5=>“xin”, “chào”, “bạn”); /*tương đương với $a[5]=“xin”; $a[]=“chào”; $a[]=“bạn”;*/
  • 18. Kiểu mảng (tiếp)  Khởi tạo mảng bằng hàm array()(tiếp) – Chỉ số chuỗi: $a=array(“ten”=>”Hồng”, “mau”=>”Đỏ”); /*Tương đương với: $a[“ten”] = “Hồng”; $a[“mau”] = “Đỏ”;*/ – Mảng nhiều chiều: $a = array( array(“TT”, “Họ tên”), array(1,”Nguyễn Văn A”) );
  • 19. Ép kiểu và kiểm tra kiểu  Sử dụng cú pháp Ký hiệu Ý nghĩa kiểu tương tự C/C++ $x = “123abc”; //$x (int), (integer) Số nguyên là chuỗi (real), (double), Số thập phân $x =(int) ”123abc”; (float) //$x là số (string) Chuỗi nguyên=123  Các kiểu (bảng) (array) Mảng  Kiểm tra kiểu: (object) Đối tượng gettype(), is_bool(), (bool), (boolean) Logic is_long(), … NULL, tương tự (unset) như gọi unset()
  • 20. Toán tử  Kiểu số: – Kết hợp: +, -, *, /, % – Tăng giảm: ++, -- VD: $a++; $a--; ++$a; --$a;  Chuỗi: Toán tử chấm (.)  Logic: AND (&&), OR (||), XOR, !  Gán: =, +=, -=, .=  So sánh: ==, ===, !=, <, >, <=, >=
  • 21. Các cấu trúc điều khiển
  • 22. Rẽ nhánh if if (BTLG) if (BTLG1) lệnh; lệnh1; elseif (BTLG2) if (BTLG) lệnh2; lệnh1; elseif (BTLG3) else lệnh3; lệnh2; else lệnhkhác; $biến= BTLG?Giá_trị1:Giá_trị2
  • 23. switch switch ($biến){ case (giá_trị1): các_lệnh1; case (giá_trị2): các_lệnh2; default: các_lệnh_khác; }
  • 24. Lặp không xác định while (BTLG) do { lệnh; các_lệnh } while (BTLG);
  • 25. Lặp xác định for (lệnh_khởi_tạo; BTLG; lệnh2) lệnh; foreach ($biến_mảng as $giá_trị) lệnh; foreach ($biến_mảng as $khoá=>$giá_trị) lệnh;
  • 26. break và continue  break: Kết thúc khối lệnh for, while, do-while hoặc switch  continue: bỏ qua phần sau continue trong vòng lặp, chuyển sang vòng lặp tiếp.
  • 27. Hàm tự tạo  Khai báo hàm function tên_hàm(ts1, ts2,…, tsn) { //các lệnh trong thân hàm }  Để trả ra giá trị cho hàm ta sử dụng lệnh return biểu_thức;  Để thoát khỏi hàm: – Sử dụng return – exit;
  • 28. Hàm tự tạo (tt)  Gọi hàm: tên_hàm(gt1, gt2,… , gtn);  Chú ý: – Nếu hàm không có tham số, khi khai báo hàm, gọi hàm vẫn phải giữ lại () – Để khai báo hàm với các tham số mặc định, khi khai báo ta đưa ngay giá trị tham số vào. function tên_hàm(ts1=gt1, ts2=gt2,…)
  • 29. Phạm vi biến  Phạm vi biến là phạm vi ở đó biến xác định. Trong PHP, biến có 3 phạm vi: – Local variables: biến cục bộ: • Khởi tạo trong hàm • có tác dụng từ khi khởi tạo đến hết hàm. – Global variables: Biến toàn cục: • Khởi tạo ở ngoài hàm • Có tác dụng từ khi khởi tạo đến hết file trừ ở trong hàm. • Để đưa 1 biến toàn cục vào trong hàm, sử dụng khai báo global $biến1, $biến2,…; hoặc mảng $_GLOBAL – Super Global Variables: Siêu toàn cục: Một số biến có sẵn của PHP: $_SERVER, $_GLOBAL...
  • 30. Biến được định nghĩa trước  $_SERVER: mảng chứa các thông tin về headers, paths, and script locations – PHP_SELF – REQUEST_METHOD – SERVER_NAME – SERVER_ADDR: IP server  $_COOKIE: chứa các giá trị mà scrip phía server có thể lưu trữ và truy xuất trên trình duyệt của client  $_GET: mảng các giá trị của biến được truyền thong qua phương thức HTTP GET  $_POST: tương tự trên  $_FILES: mảng các tập tin được upload tới máy chủ server  $_REQUEST: mảng kết hợp của các biến $_GET, $_POST, and $_COOKIE  $_SESSION: lưu trữ giá trị các biến lien quan tới phiên làm việc của người dùng  $GLOBALS: mảng chưa các biến được định nghĩa với từ khóa global
  • 31. Biến tĩnh  Khai báo trong hàm  Giá trị được lưu trữ qua nhiều lần gọi hàm  Chỉ được khởi tạo ở lần khai báo đầu tiên  Để khai báo: static $biến_tĩnh=giátrị;
  • 32. Chèn file  include(“địa_chỉ_file”); – Nếu file chèn vào có lỗi thì cảnh báo lỗi và tiếp tục thực hiện file cho tới cuối cùng.  require(“địa_chỉ_file”); – Nếu có lỗi thì báo lỗi và dừng lại, ko thực hiện câu lệnh tiếp theo.  include_once(“địa_chỉ_file”); – Chỉ chèn file một lần duy nhất  require_once(“địa_chỉ_file”);
  • 34. Định nghĩa lớp class tên_lớp{ //thânlớp }  Thân lớp gồm có các khai báo dữ liệu, phương thức.  Thân lớp phải được đặt trong 1 khối lệnh PHP duy nhất. – Các dữ liệu (biến) được khai báo bằng var – Các phương thức (hàm) khai báo như thông thường.
  • 35. Đối tượng  Tạo đối tượng: Sử dụng từ khóa new: $biến = new Tên_lớp;  Truy cập vào phương thức hoặc biến của đối tượng: Sử dụng ->: $biến->tên_phương_thức
  • 36. Kế thừa  Sử dụng từ khóa extends.  Truy cập vào lớp cha: parent::tên  Đối tượng $this: Lớp hiện tại.
  • 37. Vài điểm mới về lớp trong PHP5  Hạn chế truy cập (public, protected, private)  Phương thức __construct và __destruct  Biến tĩnh static, hằng trong lớp const có thể truy cập mà không cần đối tượng.  Lớp trừu tượng, phương thức trừu tượng abstract  interface và implement