Menu-ngang

☰ MENU

28/02/2023

Bài 2: Kiến thức cơ bản về PHP

2.1. Cấu trúc cơ bản của PHP

PHP cũng có thẻ bắt đầu và kết thúc giống với ngôn ngữ HTML. Chỉ khác, đối với PHP chúng ta có nhiều cách để thể hiện.


Cách 1 : Cú pháp chính:


<?php Mã lệnh PHP ?>


Cách 2: Cú pháp ngắn gọn


<? Mã lệnh PHP ?>


Cách 3: Cú pháp giống với ASP.


<% Mã lệnh PHP %>


Cách 4: Cú pháp thay thế lệnh echo


<?= $[biến] ?>


Trong PHP để kết thúc 1 dòng lệnh chúng ta sử dụng dấu ";"


Để chú thích trong PHP:

// : cho từng dòng. 

/*……..*/" : cho nhiều dòng.

Ví dụ:

<?php

   echo ("Xin chào bạn");

?>


Hàm echo dùng để xuất dữ liệu ra trình duyệt.

2.2. Xuất giá trị ra trình duyệt:

Để xuất dữ liệu ra trình duyệt chúng ta có những dòng cú pháp sau :


     echo ("Thông tin");

     printf ("Thông tin");


Thông tin bao gồm : biến, chuỗi, hoặc lệnh HTML ….


   Ví dụ:

 

   <?php

      Echo("Hello word");

      Echo("<b>vnkha.com</b>");

      $a = 9.5; //Khai báo biến a gán giá trị 10

      Echo("Điểm trung bình: ".$a. "Xếp loại giỏi");

   ?>

2.3. Khái niệm biến, hằng, chuỗi và các kiểu dữ liệu.

a. Biến:

Biến được xem là vùng nhớ dữ liệu tạm thời. Và giá trị có thể thay đổi được. 

Biến được xem là hợp lệ khi nó thỏa các yếu tố :


Biến được bắt đầu bằng ký hiệu "$".  Các từ  phải viết liền hoặc có gạch dưới.


+ Tên của biến không được phép trùng với các từ khóa của PHP.

 

Ví dụ:


    <?php

        $a;

        $pi = 3.14;

        $ho_ten = "Nguyễn Văn Đạt"

        x = 10; //sai vì không bắt đầu bằng $

        $chu vi; //sai vì dùng ký tự trắng

    ?>

b. Khái niệm về hằng

Hằng trong PHP được định nghĩa bởi hàm define.

Cú pháp:

 define (chuỗi_tên_hằng, giá_trị_hằng );

Biến được xem là hợp lệ khi nó thỏa các yếu tố :


+ Hằng không có dấu "$" ở trước tên.

+ Hằng có thể truy cập bất cứ vị trí nào trong mã lệnh.

+ Hằng chỉ được phép gán giá trị duy nhất 1 lần.

+ Hằng thường viết bằng chữ in để phân biệt với biến.


Ví dụ :


    <?php

         define("PI", 3.14);

         define("DT", "0981234567")

         echo("Số pi có giá trị".PI);

         echo("Số điện thoại của tôi: ".DT);

    ?>


c. Khái niệm về chuỗi:

 Chuỗi là một nhóm các kỹ tự, số, khoảng trắng, dấu ngắt được đặt trong cặp dấu nháy đơn hoặc nháy đôi.

Ví dụ:


    $ten = ‘Huy’

    $ho_dem = "Nguyễn Văn";


Để liên kết 1 chuỗi và 1 biến chúng ta thường sử dụng dấu "."


Ví dụ:


     echo("Họ và tên ".$ho_dem." ".$ten


d. Kiểu dữ liệu

Trong PHP chúng ta có 6 kiểu dữ liệu chính như sau :

       

      1- Interger: Kiểu số nguyên


            Ví dụ: 

                      $a = 10;


       2- Double: Kiểu số thực


           Ví dụ: 

                      $pi = 3.14;


       3- String: Kiểu chuỗi


           Ví dụ: 

                      $chuoi = "Tôi yêu Việt Nam";

     

       4- Boolean: Kiểu logic (true, false)


           Ví dụ: 

                      $kiem_tra = true;


       5- Array: Kiểu mãng


          Ví dụ: 

                      $mangA= array("Hoàng Anh", "Nữ", 8.5);


       6- Object: Kiểu hướng đối tượng


            Ví dụ: 

            Mình có một đối tượng là xe hơi nó có các thuộc tính về màu, bao nhiêu bánh, có kính hay không, của hãng nào . . . 

           6.1- Khai báo:

           Thông thường một đối tượng sẽ phải thuộc một lớp cụ thể nào đó tuy nhiên ở bài này mình sẽ đề cập đến 1 lớp rỗng trong PHP đó là stdClass.

            <?php

                    $xe_hoi = new stdClass;

            ?>

         6.2- Sử dụng:

         Sử dụng đối tượng này thì chỉ cần gọi thuộc tính của nó dưới mũi tên cũng giống như cách thêm giá trị của nó

   <?php
        
        $xe_hoi = new stdClass;

        //Thêm giá trị cho đối tượng

        $xe_hoi->mau = "trắng";
        $xe_hoi->banh = "4 bánh";
        $xe_hoi->tocdo = "100 km/h";
        $xe_hoi->loai = "Toyota";
        $xe_hoi->gia = array("$1000", "$2000", "$3000");

        //Xuất giá trị

        echo $xe_hoi->mau; // Trắng
        echo $xe_hoi->tocdo; // 100km/h
    ?>

2.4. Lệnh if-else trong PHP

a. Lệnh điều kiện if

Cú pháp:

    if(điều kiện){
        //thực hiện khối lệnh nếu điều kiện đúng
    }

Ví dụ:

    <?php
      $a = 10;
    if($a>=0)
       echo($a." là số dương");
   ?>

b. Lệnh điều kiện if ... else

Cú pháp:

if(điều kiện){
    //thực hiện khối lệnh nếu điều kiện đúng
}else{
    //thực hiện khối lệnh nếu điều kiện sai
}

Ví dụ: 

    <?php
      $a = 10;
    if($a>=0)
       echo($a." là số dương");
    else
       echo($a." là số âm");  
   ?>

c. Lệnh điều kiện if ... elseif ... else 

Cú pháp:

if(điều kiện 1){
    //thực hiện khối lệnh nếu điều kiện 1 đúng
}elseif(điều kiện 2){
    //thực hiện khối lệnh nếu điều kiện 2 đúng
    }else{
        //thực hiện khối lệnh nếu tất cả những điều kiện trên sai
    }

Ví dụ:   Xét nghiệm phương trình bậc 2 ax + bx + c = 0 (với a khác 0)

    <?php
    $a = 3;
    $b = -2;
    $c = 1;
      $delta = $b*$b - 4*$a*$c;
    if($delta < 0)
       echo("Phương trình vô nghiệm.");
    elseif($delta == 0)
       echo("Phương trình có nghiệm kép.");
    else
       echo("Phương trình có 2 nghiệm phân biệt.");
   ?>


2.5. Cấu trúc lặp trong PHP

a. Cấu trúc for

Cú pháp:

for(biểu thức 1; biểu thức 2; biểu thức 3){
    //Đoạn mã mà bạn muốn được thực thi
}

Ví dụ:
    <?php
        for($i = 1; $i <= 100; $i++){
          echo ("<p>Số thứ </p>".$i);
        }
    ?>

b. Cấu trúc foreach

Cú pháp:

foreach ($array as $value) { 
             //Khối lệnh 
}

Ví dụ:

<?php  
    $data = array("HTML", "CSS", "JavaScript", "MySQL", "PHP");
    foreach ($data as $value) {
        echo ("<p>".$value."</p>");
    }
?>

2.6. Hàm và tập tin trong PHP (Function)

2.6.1. Hàm
Hàm trong PHP dùng để thực hiện một khối lệnh liên tiếp có điểm đầu và điểm cuối. Một hàm được xác định thực hiện một công việc cụ thể nào đó.
Không có tham số
Cú pháp:
function name(){
   //lệnh thực thi
}

Ví dụ:
<?php
function hienthi(){
   echo "Hello World";
}
hienthi();
?>

Có tham số truyền vào
Cú pháp:
function name($ts1, $ts2){
   //khối lệnh
}
– $ts1, $ts2: tham số được sử dụng trong hàm.

– khối lệnh: nằm bên trong cặp dấu ngoặc nhọn ( {} ).

Hàm có giá trị trả về
Khi thực hiện xong hàm thì sẽ được trả về một giá trị nào đấy thông qua câu lệnh return được đặt ở trong hàm.

function tinhtong($a,$b){
   $total=$a+$b;
   return $total;
}
echo tinhtong(10,20) // gọi hàm
Gọi một file khác vào trong PHP
PHP cung cấp nhiều hàm cho phép triệu gọi lại file. Như hàm include(“URL đến file”), require(“URL Đến file”)

2.6.1. Tập tin

1- Đóng, mở 1 file trong PHP:
Để mở 1 file ta sử dụng cú pháp sau: fopen("Đường dẫn", thuộc tính).
Trong đó Đường dẫn chính là đường dẫn tới file cần mở.
Thuộc tính bao gồm các quyền hạn cho phép thao tác trên file đó như thế nào.
Các thuộc tính cơ bản :
r: Mở file chỉ để đọc.
w: Mở file chỉ để ghi. Xóa đi nội dung cũ hoặc tạo ra file mới nếu file không tồn tại.
a: Mở file chỉ để ghi.
x: Tạo file mới chỉ để ghi.
r+: Mở file để đọc và ghi.
w+: Mở file để đọc và ghi. Xóa đi nội dung cũ hoặc tạo ra file mới nếu file không tồn tại.
a+: Mở file để đọc và ghi. Tạo ra file mới nếu file không tồn tại.
x+: Tạo file mới để đọc và ghi.

Ví dụ:
<?php
    $fp=fopen("test.txt","r")or exit("khong tim thay file can mo");
?>
  
Tương tự như thế, để đóng 1 file ta có cú pháp như sau: fclose(file vừa mở)
 Ví dụ:

<?php
    $fp=fopen("test.txt","r")or exit("khong tim thay file can mo");
    fclose($fp);
?>
 
 Việc mở và đóng này không có ý nghĩa là chúng đã được đọc. Muốn đọc được nội dung của file chúng ta lại tiếp tục với thao tác lấy dữ liệu từ file nữa.
 
2- Đọc và ghi file trong PHP.
 a) Đọc 1 file trong PHP
 PHP cho ta nhiều sự lựa chọn trong việc đọc 1 file. Có nhiều hình thức hỗ trợ nhưng hiện nay 2 hình thức phổ biến nhất vẫn là đọc file theo từng dòng và đọc file theo từng ký tự.
 - Đọc file theo từng dòng:
 Cú pháp : fgets(file vừa mở).

 Ví dụ:
<?php
    $fp=fopen("test.txt","r")or exit("khong tim thay file can mo");
    echo fgets($fp);
    fclose($fp);
?>
 
- Đọc file theo từng ký tự:
 Cú pháp : fgetc(file vừa mở).
 Ví dụ:
<?php
    $fp=fopen("test.txt","r")or exit("khong tim thay file can mo");
    echo fgetc($fp);
    fclose($fp);
?>
  
Quy trình đọc sẽ diễn ra theo từng yêu cầu của cú pháp sử dụng. Nhưng sẽ có sự ràng buộc bởi việc kiểm tra đã đến cuối file chưa ?.
 
Ở đây chúng ta dùng cú pháp sau: feof(file vừa mở)
 
Ví dụ:
<?php
    $fp=fopen("test.txt","r")or exit("khong tim thay file can mo");
    while(!feof($fp)){
        echo fgets($fp);
    }
    fclose($fp);
?>
 
 
b) Ghi 1 file trong PHP
 
PHP cung cấp cho ta 1 cú pháp nhỏ để ghi dữ liệu vào 1file
Cú pháp cơ bản : fwrite("file vừa mở", "Nội dung cần ghi vào file")
Ví dụ:
<?php
    $fp=fopen("test.txt","a")or exit("khong tim thay file can mo");
    $news="Trung Tam Tin hoc Viet Chuyenn";
    fwrite($fp,$news);
    fclose($fp);
?>


2.7. Mảng và chuỗi trong PHP (Array)

2.7.1. Mảng

1- Định nghĩa mảng trong PHP:
 Với cú pháp giống với java ta có cách gọi 1 mảng như sau:
 $tên_biến= array("Kenny","Maria","Julia","Kenvin")
Như vậy khi gọi giá trị trong mảng ta có:
Echo $tên_biến[2]; // Giá trị sẽ cho là Julia.
Ngoài cách khai báo ở trên chúng ta cũng có thể khai báo bằng cách khác như sau:
$tên_biến[] = "Kenny";
$tên_biến[] = "Gillian";
$tên_biến[] = "Charlene";
$tên_biến[] = "Calvin"
Chúng ta không cần thêm ký tự vào. Vì PHP đã tự xử lý cho chúng ta phần đó.
Để thêm 1 phần tử vào mảng chúng ta cũng có thể sử dụng như sau:

$tên_biến[] = "Jiro";

Ví dụ:
<?php
    $a=array("Kenny","Maria","Julia","Kenvin");
    echo $a[2]; //Xuất ra giá trị Julia
?>

2- Khái niệm mảng kết hợp trong PHP
 Là các mảng được tạo index bằng các chuỗi , chúng được gợi là các mảng kết hợp.
 Ví dụ:
<?php
    $a= array ("name" => "Kenny", 
               "job"  => "Teacher",
               "age"  => "45", 
               "email" => "kenny@qhonline.info");
?>

Như vậy để truy cập giá trị của mảng trên chúng ta không thể sử dụng cách cũ được.

Ví dụ: Để lấy giá trị của tuổi tôi không thể sử dụng cách trên : echo $a[2].
Vì chúng ta đã gán giá trị của index cho 1 tên gọi khác. Do vậy để lấy giá trị của tuổi ta sử dụng như sau: echo $a[age] // Kết quả sẽ cho ra 45.
<?php
    $a= array ("name" => "Kenny", 
               "job"  => "Teacher",
               "age"  => "45", 
               "email" => "kenny@qhonline.info");
    echo $a['age'];
?>

3- Phép lặp trong mảng:
a) Phép lặp mảng tuần tự:
Cú pháp:
 foreach($array as $temp)
{ Hành Động }
Trong đó $array là mảng mà ta muốn thực thi việc lặp dữ liệu, và $temp là một biến trong đó ta sẽ tạm thời lưu trữ mỗi phần tử.
Ví dụ:
<?php
    $name= array("Kenny", "Jiro", "Calvin", "Gillian");
    foreach ($name as $test){ 
        echo "$test<br>"; 
    }
?>

b) Lặp lại qua một mảng kết hợp:
 Cú pháp:
 Foreach($array as $key=>$value)
{ Hành Động }
Trong đó $array là mảng mà ta muốn thực thi việc lặp dữ liệu, $key là một biến vốn tạm thời chứa mỗi khóa, và $value là một biến vốn tạm thời chữa mỗi giá trị.
Ví dụ:
<?php
    $person= array("name"   =>"Kenny", 
                   "job"    =>"Teacher", 
                   "email"  =>"kenny@qhonline.info", 
                   "age"    =>"38");
    foreach($person as $key=>$test){
        echo "Key: $key. Gia Tri: $test<br>";
    }
?>

2.7.2. Chuỗi: 
Việc xử lý chuỗi trong lập trình PHP rất quan trọng vì dữ liệu để hiển thị trên trang web đa phần là ở dạng chuỗi. Vì thế việc hiểu và nắm vững kiến thức trong xử lý chuỗi sẽ giúp bạn tối ưu hóa hiệu suất của website và đẩy nhanh tiến độ thiết kế website. Dưới đây là một số hàm và toán tử xử lý chuỗi trong PHP:

Toán tử nối chuỗi: Để nối 2 chuỗi chúng ta sử dụng toán tử (.) 

Ví dụ: echo "abc"." "."def";

Các hàm xử lý chuỗi cơ bản
- Hàm strlen(string): được sử dụng để tính chiều dài của chuỗi

Ví dụ:

<?php
echo strlen("Hello world!");
?>
//kết quả in ra:12
- Hàm str_word_count(string $string [, int $format = 0 [, string $charlist ]]) : đếm tổng số từ có trong chuỗi
+ string: chỉ định chuỗi để kiểm tra
+ format: chỉ định kiểu giá trị trả về của hàm + str_word_count(). Các giá trị này có thể là:
0 - Mặc định - trả về số lượng từ đếm được
Ví dụ:
<?php
print_r(str_word_count("Hello world!",1));
?>
//kết quả in ra: Array ( [0] => Hello [1] => world )
- Hàm strtoupper(string): đổi chữ thường thành hoa.
- Hàm strtolower(string): đổi chữ hoa thành thường.
- Hàm ucfirst(string): đổi chữ in ký tự đầu tiên của chuỗi.
- Hàm ucwords(string): đổi chữ in ký tự đầu tiên của mỗi từ trong chuỗi.
- Hàm trim($string, $character); Xóa ký tự $character nằm ở đầu và cuối chuỗi $str, nếu ta không nhập $character thì mặc định nó hiểu là xóa khoảng trắng.
- Hàm ltrim($string, $character): Tương tự như trim nhưng chỉ xóa bên trái
- Hàm rtrim($string, $character): Tương tự như trim nhưng chỉ xóa bên phải