PHP-cheat-sheet-VI-Vietsub

Các câu lệnh điều khiển

MỤC LỤC

  1. Control Structure - Cấu trúc câu lệnh điều khiển
  2. Loop Statement - Câu lệnh vòng lặp
  3. Branching Statement - Câu lệnh phân nhánh
  4. Declaration Statements - Câu lệnh khai báo
  5. Function Control Statements - Câu lệnh điều khiển
  6. File Inclusion Statement - Câu lệnh gọi tệp tin [require - inclue - require_once - include_once].
  7. Jump Statement - Câu lệnh ‘Nhảy’

Return MENU

1. CONTROL STRUCTURE

if ( expression ) {
   statement1;
   statement2;
   // more statement
}

A. Lồng IF

Ta có thể lồng nhiều câu lệnh IF lại với nhau

if ( expression1 ) {
    // do something
    if( expression2 ) {
        // do other things
    }
}

B. Áp dụng câu lệnh IF nhúng vào HTML.

// Syntax: 
<?php if ( expession) : ?>
<!-- HTML code here -->
<?php endif; ?>
<body>
    <?php $is_admin = true; ?>
    <?php if ( $is_admin ) : ?>
        <a href="#">In IF Statement and only show when condition $is_admin is `true` </a>
        <br>
    <?php endif; ?>
    <a href="#">Out of IF Statement, not effect with condition $is_admin</a>
</body>

Xem ví dụ ở đoạn code IfStatementDemo.php

1.2 Câu lệnh IF...ELSE

Nối tiếp với IF, câu lệnh sẽ được thực thi nếu điều kiện là true. Nhưng đối với điều kiện không đúng false, thì lúc này câu lệnh else sẽ làm việc đó.

if ( expression ) {
    // code block
} else {
    // another code block
}

C02_Else_Statement.png

$is_authenticated = false;
if ( $is_authenticated ) {
    echo 'Welcome!';
} else {
    echo 'You are not authorized to access this page.'
}
// Output:
You are not authorized to access this page.

A. Nhúng IF...ELSE vào HTML

<?php if ( expression ): ?>
<!--Show HTML code when expression is true -->
<?php else: ?>
<!--Show HTML code when expression is false -->
<?php endif ?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>PHP if else Statement Demo</title>
</head>
<body>
  <?php $is_authenticated = true; ?>
  <?php if ($is_authenticated) : ?>
  <a href="#">Logout</a>
  <?php else: ?>
  <a href="#">Login</a> 
  <?php endif ?>
</body>
</html>

Xem đoạn code ở IfElseStmtDemo.php

1.3 Câu lệnh IF...ELSEIF...ELSE

Câu lệnh ELSEIF là một dạng câu lệnh IF...ELSE với nhiều điều kiện hơn.

// Syntax:
if (expression1) {
	statement;
} elseif (expression2) {
	statement;
} elseif (expression3) {
	statement;
}

Cú pháp thay thế | PHP if elseif alternative syntax

<?php
if (expression): // « Dấu 2 : ở mỗi dòng thay vì {}
	statement;
elseif (expression2):
	statement;
elseif (expression3):
	statement;
endif;

Cách hoạt động của if-elseif C02_ElseIfStmt.png

Phân biệt elseif && else if

| Elseif | Else If | |:————————————-:|:—————————————–:| | Không có khoảng trắng ở giữa | Có khoảng trắng ở giữa | | DÙNG được trong alternative ✅ | KHÔNG DÙNG được trong alternative ❌ |

1.4 Câu lệnh SWITCH

Câu lệnh Switch được thực hiện trong nhiều trường hợp khác nhau, tức là nó có nhiều trường hợp khác để thực thi phù hợp với điều kiện

switch(n) {
    case statement1:
        code to be executed if n==statement1;
        break;
    case statement2:
        code to be executed if n==statement2;
        break;
    case statement3:
        code to be executed if n==statement3;
        break;
    case statement4:
        code to be executed if n==statement4;
        break;
    ......
    default:
        code to be executed if n != any case;

Flow Chart C01_SwitchCase.png

1.5 Toán tử 3 ngôi - Tenary Operator

(condition) ? if TRUE execute this : otherwise execute this;

Câu lệnh sử dụng dấu chấm hỏi (?) và dấu hai chấm (:) và có ba toán hạng: một điều kiện cần kiểm tra, một kết quả là TRUEmột kết quả là FALSE.

// Example

<?php 
$x = -12; 
  
if ($x > 0) { 
    echo "The number is positive \n"; 
} 
else { 
    echo "The number is negative \n"; 
} 
  
  // >> Tenary Operator
// This lot can be written in a  
// single line using ternary operator 
echo ($x > 0) 
        ? 'The number is positive' 
        :  'The number is negative'; 
?>

Return MENU

2. LOOP STATEMENT - Câu lệnh vòng lặp

2.1 FOR Loop

2.3 Do-While Loop

2.4 For-Each Loop

// Syntax:
foreach (array_element as value) {
   //code to be executed
}
// For-each for ARRAY 
foreach ($array_name as $key => $value) {
   //process element here;
}
// Example:
<?php 

    $arr = array (10, 20, 30, 40, 50, 60); 
    foreach ($arr as $val) {  
        echo "$val \n"; 
    } 
      
    $arr = array ("Ram", "Laxman", "Sita"); 
    foreach ($arr as $val) {  
        echo "$val \n"; 
    } 
  
?>

// Example 2:
<?php
// Array.md 
$capitals = [
	'Japan' => 'Tokyo',
	'France' => 'Paris',
	'Germany' => 'Berlin',
	'United Kingdom' => 'London',
	'United States' => 'Washington D.C.'
];

foreach ($capitals as $country => $capital) {
	echo "The capital city of {$country} is $capital" . '<br>';
}

3. BRANCHING STATEMENT - Câu lệnh phân nhánh

breakcontinue là hai từ khóa quan trọng trong PHP được sử dụng để kiểm soát luồng thực thi trong các vòng lặp (như for, while, do-while) hoặc cấu trúc điều kiện (switch).

BREAK

4. DECLARATION STATEMENT - Câu lệnh khai báo

DECLARE construct được sử dụng để đặt các chỉ thị thực thi - execution directives. Cú pháp của DECLARE tương tự như những cú pháp của các kết cấu điều khiển khác.

// Syntax:
declare (directive)
    statement

Trong đó directive - chỉ thị - cho phép thiết lập hành vi của khối declare. Hiện chỉ có 3 chỉ thị được nhận diện:

Phần câu lệnh (Statement) của khối declare được thực thi - cách thực thi phụ thuộc vào các hiệu ứng trong quá trình thực thi, phụ thuộc vào chỉ thị được đặt trong (directive block).

<?php
// This is valid:
declare(ticks=1);

// This is invalid:
const TICK_VALUE = 1;
declare(ticks=TICK_VALUE);
?>
A. Ticks:

5. FUNCTION CONTROL STATEMENT - Câu lệnh điều khiển

Câu lệnh Return trả lại quyền điều khiển chương trình về để gọi module. Việc thực thi được tiếp tục tại biểu thức sau lời gọi module.

Nếu được gọi từ bên trong một hàm - function(), câu lệnh return ngay lập tức kết thúc việc thực thi của hàm hiện tại và trả về đối số của nó như giá trị của cuộc gọi hàm. return cũng kết thúc việc thực thi của một câu lệnh eval() hoặc Script File.

6. FILE INCLUSION STATEMENT - Câu lệnh gọi tệp tin

A. include()

// even.php
<?php 
  // File to be included 
  echo "Hello Ocean"; 
?>
// index.php
<?php 
    include("even.php"); 
    echo "<br>Above File is Included"
?>
// Result
Hello Ocean
Above File is Included

B. require()

// even.php <?php // File to be required echo “Hello Ocean 2”; ?>


```php
// index.php
<?php 
    include("even.php"); 
    echo "<br>Above File is Required"
?>
// Result
Hello Ocean 2
Above File is Required

C. require_once()

SO SÁNH 4 loại [require - inclue - require_once - include_once]

Để so sánh include, include_once, requirerequire_once, chúng ta có thể sử dụng một bảng như sau:

Chức năng Được gọi từ Nếu tệp không tồn tại Trả về giá trị Kết thúc chương trình nếu tệp không tồn tại
include Bất kỳ đâu Cảnh báo None Không
include_once Bất kỳ đâu Cảnh báo None Không
require Bất kỳ đâu Lỗi nghiêm trọng None
require_once Bất kỳ đâu Lỗi nghiêm trọng None

Chú thích:

Như bạn có thể thấy, includeinclude_once chỉ tạo ra cảnh báo nếu tệp không tồn tại, và chương trình sẽ tiếp tục thực thi. Trong khi đó, requirerequire_once tạo ra một lỗi nghiêm trọng nếu tệp không tồn tại, và có thể dẫn đến kết thúc chương trình.

7. JUMP STATEMENT - Câu lệnh nhảy

a: echo ‘Hello World!’; ?>

```php
//Output: 
Hello World

Vậy goto trong một vòng lặp thì sao

//Example Loop
<?php
for($i=0,$j=50; $i<100; $i++) {
  while($j--) {
    if($j==17) goto end; 
  }  
}
echo "i = $i";
end:
echo 'j hit 17';
?>
//Output: 
j hit 17