Tìm hiểu PHP cơ bản cho người mới học – phần 2

Trang chủ Blog LẬP TRÌNH PHP Tìm hiểu PHP cơ bản cho người mới học – phần 2
Tìm hiểu PHP cơ bản cho người mới học – phần 2

Trước khi tìm hiểu phần hai, bạn hãy xem phần một tại đây: Phần 1

Trong bài này, tôi sẽ hướng dẫn bạn sử dụng những hàm, câu lệnh thường hay dùng nhất khi lập trình, như If / Else, Switch, While, Do…While, Foreach, Sort … Nếu có câu hỏi, bạn hãy liên hệ Facebook nhé.

Câu lệnh If / Else / Elseif

If / Else là một câu lệnh điều kiện, được dùng để xác định xem nếu thỏa mản điều kiện thì sẽ thực thi code bên trong.

Câu lệnh If

<?php

  if (điều kiện) {
    câu lệnh 1;
    câu lệnh 2;
  }

Lưu ý: Bạn có thể lồng bao nhiêu câu lệnh trong một khối “if” tùy thích; không bị giới hạn;

Câu lệnh If / Else

<?php

  if (điều kiện) {
    câu lệnh 1;
    câu lệnh 2;
  } else {
    câu lệnh 3;
    câu lệnh 4;
  }

Lưu ý: Câu lệnh else là tùy chọn, có thể có hoặc không.

Câu lệnh If / Elseif / Else

<?php

  if (điều kiện 1) {
    câu lệnh 1;
    câu lệnh 2;
  } elseif (điều kiện 2) {
    câu lệnh 3;
    câu lệnh 4;
  } else {
    câu lệnh 5;
  }

Lưu ý: elseif phải được viết liền.

Câu lệnh If / Else lồng nhau

<?php

  if (điều kiện 1) {
      if (điều kiện 2) {
        câu lệnh 1;
        câu lệnh 2;
      } else {
        câu lệnh 3;
        câu lệnh 4;
      }
  } else {
      if (điều kiện 3) {
        câu lệnh 5;
        câu lệnh 6;
      } else {
        câu lệnh 7;
        câu lệnh 8;
      }
  }

Nhiều điều kiện

bạn có thể sử dụng nhiều điều kiện cùng một lúc bằng các toán tử logic “or” (||), “xor”, và “and” (&&).

Ví dụ:

<?php

  if (điều kiện 1 && điều kiện 2) {

    echo 'Thỏa mản cả hai điều kiện đều trên!';
  } elseif (điều kiện 1 || điều kiện 2) {

    echo 'Thỏa mản 1 trong 2 điều kiện!';
  } else (điều kiện 1 xor điều kiện 2) {

    echo 'Một điều kiện là đúng và một điều kiện là sai!';
  }

Cú pháp If / Else thay thế

Ngoài ra còn có một cú pháp thay thế cho dấu ngoặc {} là dấu hai chấm : và cuối là endif;

 if (điều kiện 1):
    câu lệnh 1;
  else:
    câu lệnh 2;
  endif;

Cách để làm gọn If / Else

Với cách này if / else chỉ còn một dòng.

Giả sử bạn cần hiển thị “Hello (tên người dùng)” nếu người dùng đã đăng nhập và “Hello guest” nếu họ chưa đăng nhập.

Câu lệnh If / Else thông thường:

if($user == !NULL {
  $message = 'Hello '. $user; 
} else {
  $message = 'Hello guest';
}

Rút gọn

$message = 'Hello '.($user == !NULL ? $user : 'Guest');

Switch

Trong PHP, câu lệnh Switch rất giống với câu lệnh Switch trong JavaScript. Cho phép bạn kiểm tra trường-hợp hợp-lệ hoặc không với rất nhiều điều kiện khác nhau, dễ đọc hơn if:

<?php
	// Switch Statement Example
	switch ($i) {
    	case "1":
    	    echo "Hạn nhất";
    	    break;
    	case "2":
    	    echo "Hạn nhì";
    	    break;
    	case "3":
    	    echo "Hạn ba";
    	    break;
    	default:
    	    echo "Không có hạn";
            break;
	}

Break

break; câu lệnh để thoát khỏi Switch Nếu bạn không sử dụng break; câu lệnh bạn có thể chạy nhiều trường hợp, rất có thể sẽ thực thi code không mong muốn.

Ví dụ:

<?php
    $j = 0;

    switch ($i) {
        case '2':
            $j++;
        case '1':
            $j++;
            break;
        default:
            break;
}

Nếu $i = 1, giá trị của $j sẽ là:

1

Nếu $i = 2, giá trị của $j sẽ là:

2

Vì nó chạy tiếp code phía dưới.

Có thể dùng return để trả về giá trị:

<?php
    switch ($i) {
        case '1':
            return 1;
        case '2':
            return 2;
        default:
            break;
     }

Thí dụ khác

<?php
//random từ 1 đến 6
$diceNumber = mt_rand(1, 6);

//khởi tạo một biến rỗng
$numText = "";

//calling switch statement
  switch($diceNumber) 
  {
  case 1:
    $numText = "One";
    break;
  case 2:
    $numText = "Two";
    break;
  case 3:
  case 4:
    // case 3 và 4 sẽ hiện dòng này
    $numText = "Three or Four";
    break;
  case 5:
    $numText = "Five";
    echo $numText;
    // break; //không chỉ định ngắt hoặc trả về nó sẽ tiếp tục thực thi cho trường hợp tiếp theo.
  case 6:
    $numText = "Six";
    echo $numText;
    break;
  default:
    $numText = "unknown";
  }
  
  //in ra kết quả
  echo 'Dice show number '.$numText.'.';

?>

Output

if case is 1
> Dice show number One.

if case is 2
> Dice show number Two.

if case is 3
> Dice show number Three or Four.

if case is 4
> Dice show number Three or Four.

if case is 5
> FiveSixDice show number Six.

if case is 6
> SixDice show number Six.

if none of the above
> Dice show number unknown.

Vòng lặp

Khi bạn cần lặp lại một nhiệm vụ nhiều lần, bạn có thể sử dụng một vòng lặp thay vì thêm nhiều lần một đoạn code giống nhau.

Sử dụng break trong vòng lặp để dừng vòng lặp.

Vòng lặp for

Vòng lặp được chạy với số lần cụ thể.

<?php
  for($index = 0; $index < 5; $index ++)
  {
    echo "Current loop counter ".$index.".\n";
  }
?>

/*
Output:

Current loop counter 0.
Current loop counter 1.
Current loop counter 2.
Current loop counter 3.
Current loop counter 4.
*/

Vòng lặp While

Vòng lặp khi điều kiện còn đúng

<?php
  $index = 10;
  while ($index >= 0)
  {
    echo "The index is ".$index.".\n";
    $index--;
  }
?>

/*
Output:

The index is 10.
The index is 9.
The index is 8.
The index is 7.
The index is 6.
The index is 5.
The index is 4.
The index is 3.
The index is 2.
The index is 1.
The index is 0.
*/

Vòng lâp Do … while

Vòng lặp khi điều kiện còn đúng

<?php
  $index = 3;
  do
  {
    // execute this at least 1 time
    echo "Index: ".$index.".\n"; 
    $index --;
  }
  while ($index > 0);
?>

/*
Output:

Index: 3.
Index: 2.
Index: 1.
*/

Vòng lặp foreach

Dùng để lặp qua một mảng giá trị

<?php
  $array = ['một', 'hai', 'ba'];

  foreach( $array as $a ) {
    echo $a.'</br>';
  }

// in màng hình:
// một
// hai
// ba

Functions

Function(hàm) là một khối câu lệnh có thể được sử dụng lặp lại trong web, khi gọi function đó

Function + gọi function

function say_hello() {
  return "Hello!";
}

echo say_hello();

Function + tham số truyền vào + gọi function

function say_hello($friend) {
  return "Hello " . $friend . "!";
}

echo say_hello('Tommy');

strtoupper – IN HOA chữ!

Là một function từ PHP định sẵn:

function makeItBIG($a_lot_of_names) {
  foreach($a_lot_of_names as $the_simpsons) {
    $BIG[] = strtoupper($the_simpsons);
  }
  return $BIG;
}

$a_lot_of_names = ['Homer', 'Marge', 'Bart', 'Maggy', 'Lisa'];
var_dump(makeItBIG($a_lot_of_names));

Arrays (mảng)

Mảng giống như một biến thông thường, nhưng chứa nhiều giá trị có thứ tự. Rất cần thiết khi bạn lưu trữ danh sách tên học sinh hoặc tên thành phố.

Các loại mảng

Trong PHP, có hai loại mảng: Mảng được lập chỉ mục và Mảng liên kết. Mỗi loại đều có công dụng riêng.

Mảng được lập chỉ mục

Một mảng được lập chỉ mục là một danh sách các giá trị có thứ tự. Mỗi giá trị này trong mảng được gán một số chỉ mục. Chỉ mục cho mảng luôn bắt đầu từ 0 và tăng dần.

<?php
  $shopping_list = array("eggs", "milk", "cheese");
?>
  • $shopping_list[0] sẽ trả về "eggs"
  • $shopping_list[1] sẽ trả về "milk",
  • and $shopping_list[2] sẽ trả về "cheese".

Mảng liên kết

Mảng liên kết là danh sách các giá trị(value) được truy cập thông qua một khóa(key) thay vì số chỉ mục như ở trên. Khóa(key) có thể là bất kỳ giá trị nào nhưng nó phải là duy nhất cho mảng.

<?php
  $student_scores = array("Joe" => 83, "Frank" => "93", "Benji" => "90");
?>
  • $student_scores['Joe']  sẽ trả về 83
  • $student_scores['Frank']  sẽ trả về 93
  • $student_scores['Benji'] sẽ trả về 90.

Mảng đa chiều

Mảng đa chiều là mảng chứa các mảng khác. Cho phép bạn tạo cấu trúc dữ liệu phức tạp hơn.

<?php
$students = 
  array(
    array("first_name" => "Joe", "score" => 83, "last_name" => "Smith"),
    array("first_name" => "Frank", "score" => 92, "last_name" => "Barbson"),
    array("first_name" => "Benji", "score" => 90, "last_name" => "Warner")   
  );
?>

Để lấy first_name của học sinh đầu tiên bằng cách:

$students[0]['first_name']

Đếm độ dài của một mảng – Hàm count()

Hàm count() được sử dụng để trả về độ dài (số phần tử) của một mảng:

<?php
   $cars = array("Volvo", "BMW", "Toyota");
   echo count($cars); //in màn hình: 3
?>

Sắp xếp Mảng

Hàm sort() sắp xếp các giá trị của một mảng theo thứ tự chữ cái / số tăng dần (Ví dụ: A, B, C, D, E … 1, 2, 3, 4, 5 …)

<?php
  $freecodecamp = array("hoc", "code", "free");
  sort($freecodecamp);
  print_r($freecodecamp);
?>

Output:

Array
(
    [0] => code
    [1] => free
    [2] => hoc
)

rsort()

Hàm rsort() sắp xếp các giá trị của một mảng theo thứ tự chữ cái / số giảm dần (Ví dụ: Z, Y, X, W, V … 5, 4, 3, 2, 1 …)

<?php
  $freecodecamp = array("hoc", "code", "free");
  rsort($freecodecamp);
  print_r($freecodecamp);
?>

Đầu ra:

Array
(
    [0] => hoc
    [1] => free
    [2] => code
)

asort()

Hàm asort() sắp xếp một mảng, theo các giá trị của nó, theo thứ tự chữ cái / số tăng dần (Ví dụ: A, B, C, D, E … 1, 2, 3, 4, 5 …)

<?php
  $freecodecamp = array("zero"=>"hoc", "one"=>"code", "two"=>"free");
  asort($freecodecamp);
  print_r($freecodecamp);
?>

Đầu ra:

Array
(
    [two] => code
    [one] => free
    [zero] => hoc
)

ksort()

Hàm ksort() sắp xếp một mảng liên kết, theo các khóa(key) của nó, theo thứ tự chữ cái / số tăng dần (Ví dụ: A, B, C, D, E … 1, 2, 3, 4, 5 …)

<?php
$freecodecamp = array("zero"=>"hoc", "one"=>"code", "two"=>"free");
ksort($freecodecamp);
print_r($freecodecamp);
?>

Đầu ra:

Array
(
    [one] => code
    [two] => free
    [zero] => hoc
)

arsort()

Hàm arsort() sắp xếp mảng liên kết, theo các giá trị của nó, theo thứ tự chữ cái / số giảm dần (Ví dụ: Z, Y, X, W, V … 5, 4, 3, 2, 1 …)

<?php
$freecodecamp = array("zero"=>"hoc", "one"=>"code", "two"=>"free");
arsort($freecodecamp);
print_r($freecodecamp);
?>

Đầu ra:

Array
(
    [zero] => hoc
    [one] => free
    [two] => code
)

krsort()

Hàm krsort() sắp xếp một mảng liên kết, bằng các khóa(key) của nó theo thứ tự chữ cái / số giảm dần (Ví dụ: Z, Y, X, W, V … 5, 4, 3, 2, 1 …)

<?php
  $freecodecamp = array("zero"=>"hoc", "one"=>"code", "two"=>"free");
  krsort($freecodecamp);
  print_r($freecodecamp);
?>

Đầu ra:

Array
(
    [zero] => hoc
    [two] => free
    [one] => code
)

Forms

Forms là một biểu mẫu để người dùng nhập dữ liệu hoặc chọn dữ liệu từ trang web. Khi người dùng nhấn gửi, chúng ta có thể dùng PHP để lấy dữ liệu đó.

Để tạo biểu mẫu bạn cần một số thuộc tính cơ bản trong HTML. PHP sử dụng các biến ‘post’ và ‘get’ để lấy dữ liệu từ biểu mẫu.

<html>
<body>
  <form method="get" action="trang_dich.php">
      <input type="text" name="firstName" /><br />
      <input type="submit" name="submit" value="Gửi" /><br />
  </form>
<body>
</html>

Thuộc tính ‘method’ cho form biết cách gửi dữ liệu(có thể get / post). Sau đó, thuộc tính ‘action’ cho biết nơi gửi dữ liệu. Còn thuộc tính ‘name’ là rất quan trọng và phải là duy nhất vì trong PHP giá trị name phải là duy nhất, để nhận dạng input đó.

Kiểm tra đầu vào bắt buộc

PHP có một số hàm để kiểm tra các input. Các hàm đó là isset, empty is_numeric.

Isset sẽ kiểm tra xem field đã được đặt chưa và không phải là giá trị rỗng. Thí dụ:

$firstName = $_GET['firstName']

if(isset($firstName)){
  echo "firstName field is set". "<br>";
}
else{
  echo "The field is not set."."<br>";
}

Xử lý đầu vào biểu mẫu

bạn có thể lấy giá trị từ form bằng biến $POST$GET, tùy thuộc vào thuộc tính ‘method’ của form đó

$_POST["firstname"] hoặc $_GET['firstname']