Hằng số (Bài trước)

Khái niệm về toán tử và phân loại toán tử PHP

Xem xét một biểu thức tính toán trong PHP ví dụ: 10 + 15, đây là phép cộng cho giá trị là 25.  Trong biểu thức đó các số 10, 15 gọi là toán hạng ký hiệu + chính là toán tử của phép cộng.  

Trong PHP có nhiều toán tử được phân loại thành 5 nhóm như sau:

Các toán tử số học

Gồm các phép toán + - * / % ++ --với diễn giả và ví dụ như bảng dưới đây. Bạn có thể thử các phép toán bằng cách thay đổi số trong Form ví dụ

Toán tử Diễn tả Ví dụ
+ Phép cộng hai số $A + $B : 49 + 62 = 111
- Phép trừ $A - $B : 49 - 62 = -13
* Phép nhân $A * $B : 49 * 62 = 3038
/ Phép chia $A / $B : 49 / 62 = 0.79032258064516
% modulo : Phép chia lấy dư.
Phần dư của phép chia hai số nguyên
$A / $B : 49 % 62 = 49
++ Phép toán tăng thêm 1 vào biến $A++ kết quả $A = 50
-- Phép toán giảm đi giá trị 1 $B-- kết quả $B = 61

Ví dụ: Có đoạn mã nhúng PHP vào file html như sau:

    <html>
    <head><title>Toán tử số học</title><head>
    <body>
        <?php
        $a = 49;
        $b = 62;

        $c = $a + $b;
        echo "Kết quả phép cộng: $c <br/>";
        $c = $a - $b;
        echo "Kết quả phép trừ: $c <br/>";
        $c = $a * $b;
        echo "Kết quả phép nhân: $c <br/>";
        $c = $a / $b;
        echo "Kết quả phép chia: $c <br/>";
        $c = $a % $b;
        echo "Phần dư phép chia: $c <br/>";
         
        $c = $a++;
        echo "Thêm một vào $c: $a <br/>";
       
        $c = $a--;
        echo "Giảm $a đi 1: $c <br/>";
        ?>
        </body>
    </html>
    
Kết quả phép cộng: 111
Kết quả phép trừ: -13
Kết quả phép nhân: 3038
Kết quả phép chia: 0.79032258064516
Phần dư phép chia: 49
Thêm một vào 49: 50
Giảm 50 đi 1: 49

Toán tử so sánh

Các toán tử so sánh trong PHP gồm có: == != > < >= <=

Cách sử dụng các toán tử này được mô tả như bảng sau: Giả sử có hai số $C và $D với các giá trị thiết lập như sau:

Toán tử Diễn tả Ví dụ
== So sánh bằng:
true nếu hai toán hạng bằng nhau và false nếu khác
$C == $D ≡ 41 == 85 ≡ false
!= So sánh khác:
nếu hai toán hạng có giá trị khác nhau thì có giá trị true, giá trị giống nhau thì là false
$C != $D ≡ 41 != 85 ≡ true
> So sánh lớn hơn:
true nếu toán hạng thứ nhất lớn hơn toán hạng thứ hai
$C > $D ≡ 41 > 85 ≡ false
>= So sánh lớn hơn hoặc bằng:
true nếu toán hạng thứ nhất lớn hơn hoặc bằng toán hạng thứ hai
$C >= $D ≡ 41 >= 85 ≡ false
< So sánh nhỏ hơn:
true nếu toán hạng thứ nhất nhỏ hơn toán hạng thứ hai
$C > $D ≡ 41 < 85 ≡ true
<= So sánh nhỏ hơn hoặc bằng:
true nếu toán hạng thứ nhất nhỏ hơn hoặc bằng toán hạng thứ hai
$C <= $D ≡ 41 <= 85 ≡ true

Ví dụ, có file HTML nhúng mã PHP như sau:

    
<html> 
<head><title>Ví dụ về toán tử so sánh</title><head> 
<body> 
<?php 
    $a = 41; 
    $b = 85;
 
    if( $a == $b ){ 
       echo "a bằng b<br/>"; 
    }else{ 
       echo "a không bằng b<br/>";  
    } 
 
    if( $a > $b ){ 
       echo "a lớn hơn b<br/>"; 
    }else{ 
       echo "a không lớn hơn b<br/>"; 
    } 
    
    if( $a < $b ){ 
       echo "a nhỏ hơn b<br/>"; 
    }else{ 
       echo "a không nhỏ hơn b<br/>"; 
    } 
    if( $a != $b ){ 
       echo "a khác b<br/>"; 
    }else{ 
       echo "b bằng b<br/>"; 
    } 
    if( $a >= $b ){ 
       echo "a lớn hơn hoặc bằng b<br/>"; 
    }else{ 
       echo "a không lớn hơn hoặc bằng<br/>"; 
    } 
    if( $a <= $b ){ 
       echo "a nhỏ hơn hoặc bằng b<br/>"; 
    }else{ 
       echo "a không nhỏ hơn hoặc bằng b<br/>"; 
    } 
?> 
</body> 
</html>

Chạy code trên ra kết quả như sau (a = 41; b = 85):

a không bằng b
a không lớn hơn b
a nhỏ hơn b
a khác b
a không lớn hơn hoặc bằng
a nhỏ hơn hoặc bằng b

Toán tử Logic

Các toán tử logic là: and or && ||!

Giả sử $A và $B là hai số bạn thiết lập giá trị của chúng như sau:

Lưu ý vì quy tắc chuyển đổi biến, trong biểu thức logic nếu một số khác không PHP tự động nhận biết đó là giá trị true, vậy $A = 32 là true; $B = 1 là true;

Toán tử Diễn tả Ví dụ
and Toán tử và:
true nếu hai toán hạng có giá trị true
($A and $B) ≡ (32 and 1) ≡ (true and true) ≡ true
or Toán tử hoặc:
true nếu một trong hai toán tử là true
($A or $B) ≡ (32 or 1) ≡ (true or true) ≡ true
&& Toán tử và:
true nếu hai toán hạng có giá trị true
($A && $B) ≡ (32 && 1) ≡ (true && true) ≡ true
|| Toán tử hoặc:
true nếu một trong hai toán tử là true
($A || $B) ≡ (32 || 1) ≡ (true || true) ≡ true
! Toán NOT (phủ định):
true nếu giá trị là false
!($A || $B) ≡ !(32 || 1) ≡ !(true || true) ≡ false

Các toán tử gán

Các toán tử gán gồm: = += -= *= /= %=

Toán tử Diễn tả Ví dụ
= Toán tử gán:
Gán biểu thức bên phải của = vào biến bên trái
$C = ($A + $B) kết quả $C bằng 33
+= Toán tử công thêm:
Công thêm vào biến bên trái += giá trị bên phải
$C = 42;
$C += ($A + $B) kết quả $C bằng 75
-= Toán tử trừ bớt:
Bớt đi giá trị biến bên trái của -= một lượng bằng biểu thức bên phải
$C = 9;
$C -= ($A + $B) kết quả $C bằng -24
*= Toán tử nhân với:
$A *= $B tương đương với $A = $A * $B
$A *= $B kết quả $A bằng 32
/= Toán tử chia cho:
$A /= $B tương đương với $A = $A / $B
$A /= $B kết quả $A bằng 32
%= Toán tử gán module:
$A %= $B tương đương với $A = $A % $B
$A %= $B kết quả $A bằng 0

Các toán điều kiện

Sử dụng cặp ký hiệu ?: để có loại toán tử này. Xét biểu thức sau:
$a ? $b : $c
thì giá trị của biểu thức là $b nếu $atrue; và là $c nếu $afalse.

Ví dụ:

    
<?
$a = 10;
$b = 15;

$c = ($a < $b) ? $a : $b;

//Tương đương với đoạn code sau
if ($a < $b)
    $c = $a;
else 
    $c = $b;
?>

Từ PHP7 có thêm toán tử ??: Toán tử này là sự kết hợp của ?: và hàm isset()

    
<?

$c = $a ?? $b;

//Tương đương với đoạn code sau
$c = isset($a) ? $a : $b;

?>

Đăng ký nhận bài viết mới
Hằng số (Bài trước)