Skip to main content

Session 5 - PHP Operators

I. Giới thiệu

Operators: toán tử

Tất cả ngôn ngữ lập trình đều sử dụng toán tử

Operators là gì?

  • Là các ký hiệu được xác định trước thực hiện các hành động cụ thể trên các đối tượng được gọi là toán hạng
  • Được chỉ định một giá trị ưu tiên cho biết thứ tự mà các toán tử được đánh giá

II. Phân loại toán tử

Toán tử được phân thành 3 loại:

  • Unary Operator (toán tử đơn): là toán tử chỉ hành động trên một toán hạng trong một biểu thức
  • Binary Operator (toán tử nhị phân): là toán tử có hai toán hạng và thực hiện các phép toán số học và logic khác nhau
  • Conditional or Ternary Operator (toán tử điều kiện hoặc toán tử bật ba): là toán tử có ba toán hạng và đánh giá biểu thức thứ hai hoặc thứ ba tùy thuộc vào kết quả của biểu thức đầu tiên

Ví dụ:

// Unary Operator (toán tử đơn)
$a = 10;
$b = -a; // b = -10
$c = $b++;

// Binary Operator (toán tử nhị phân)
$x = 2 + 9;
$y = 'CYA' == 'CYA'; // $y = 'CYA' != 'CYA';
$z = 291 > 23;

// Conditional or Ternary Operator (toán tử điều kiện hoặc toán tử bật ba)
$username = 'ttdat';
$k = $username == 'ttdat' ? 'Hello ttdat' : 'Hello guest';

III. Arithmetic Operators - Toán tử số học

Arithmetic Operators là gì?

  • Là các toán tử nhị phân (Binary Operator) có 2 toán hạng;
  • Nếu toán hạng là các giá trị không phải là số như chuỗi, Boolean, null hoặc tài nguyên, chúng được chuyển đổi thành các giá trị tương đương số

Ví dụ:

$a = 5 + 1;
$b = 2 * 8;

IV. Relational Operators - Toán tử quan hệ

Relational Operators là gì?

  • Là toán tử so sánh hai toán hạng và trả về giá trị đúng hoặc sai giá trị
  • Toán hạng có thể là số hoặc giá trị chuỗi

Ví dụ:

$username = 'ttdat';
$checkUsername = $username == 'ttdat'; // true

$a = '1';
$b = 1;
$c = $a == $b; // true
$d = $a === $b; // false
$z = $a <= $b;

V. Logical Operators - Toán tử logic

Logical Operators là gì?

  • Là toán tử cho phép kết hợp hai hoặc nhiều biểu thức trong một điều kiện
  • Đánh giá biểu thức và trả về giá trị Boolean là true hoặc false

VI. Bitwise Operators - Toán tử Bitwise

Công cụ đổi giá trị nhị phân: https://www.binaryhexconverter.com/decimal-to-binary-converter

Bitwise Operators là gì?

  • Là toán tử hoạt động dựa trên biểu diễn từng bit của toán hạng
  • Làm việc trên biểu diễn nhị phân quy mô nhỏ của dữ liệu
  • Nếu toán hạng là một chuỗi, hoạt động chỉ được thực hiện sau khi chuyển đổi nó thành biểu diễn số nguyên tương ứng của nó

Các phép toán:

  • & (bitwise AND) lấy hai số làm toán hạng và thực hiện AND lên từng bit của hai số này. Kết quả của AND sẽ chỉ là 1 cả hai bit đều cùng là 1.
  • | (bitwise OR) lấy hai số làm toán hạng và thực hiện OR lên từng bit của hai số này. Kết quả của OR sẽ là 1 nếu một trong hai bit là 1.
  • ^ (bitwise XOR) lấy hai số làm toán hạng và thực hiện XOR lên từng bit của hai số này. Kết quả của XOR là 1 nếu hai bit khác nhau.
  • << (left shift) Lấy hai số, chuyển bits của toán hạng đầu tiên sang trái, toán hạng thứ hai quyết định số chỗ trống cần dịch chuyển.
  • >> (right shift) Lấy hai số, chuyển bits của toán hạng đầu tiên sang phải, toán hạng thứ hai quyết định số chỗ trống cần dịch chuyển.

VI. Assignment Operators - Toán tử gán

Assignment Operators là gì?

  • Là toàn tử cho phép gán giá trị cho một biến
  • Dấu ‘=’ là toán tử gán
  • Toán hạng ở bên trái của toán tử gán ‘=’ phải là một biến
  • Thao tác gán có thể được thực hiện bởi:
    • Value: giá trị cụ thể
    • Reference: tham chiếu (&$name)
  • Toán tử gán cơ bản cũng có thể được sử dụng như một toán tử viết tắt (toán tử kết hợp) kết hợp với toán tử số học và chuỗi
  • Toán tử viết tắt:
    • +=
    • -+
    • *=
    • /=
    • %=
    • .=

Ví dụ:

$a = 5;
$a += 9; // $a = 14

VII. Increment and Decrement Operators

Increment and Decrement Operators là gì?

  • Là toán tử chỉ hoạt động trên các biến
  • Làm cho một biến thay đổi giá trị của nó
  • Các toán tử gia tăng giá trị của toán hạng bằng một
  • The decrement operators decrease the value of the operand by one

Ví dụ:

$a = 1;
$a++;

$b = 2;
--$b;

VIII. String Operators - Toán tử chuỗi

String Operators là gì?

  • Chỉ hoạt động trên dữ liệu ký tự
  • Toán hạng không phải chuỗi được chuyển đổi đầu tiên trước khi hoạt động được thực thi
$a = 'Welcome ' . 'home'; // Welcome home
$b = 9 . 1; // 91

IX. Conditional or Ternary Operators

Conditional or Ternary Operators là gì?

  • Là một toán tử thay thế cho câu lệnh if-else
  • Đánh giá một biểu thức cho một giá trị đúng hoặc sai và sau đó thực hiện một trong hai câu lệnh tùy thuộc vào kết quả đánh giá

Ví dụ:

$age = 15;
$category = ($age < 16) ? 'Child' : 'Adult'; // Child

X. Precedence of Operators - Mức độ ưu tiên của toán tử

Precedence of Operators là gì?

  • Các toán tử có mức độ ưu tiên cao hơn được xử lý đầu tiên trong một biểu thức
  • Có thể ghi đè mức độ ưu tiên bằng dấu ()
  • Nếu 2 toán tử có cùng mức độ ưu tiên thì sẽ xử lý từ trái sang phải