Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Toán tử tăng/giảm (Increment/Decrement Operators) trong PHP

Giới thiệu

Toán tử tăng/giảm kiểu C được biểu diễn bằng ++ và -- cũng được định nghĩa trong PHP. Như tên gọi, ++ tăng giá trị toán hạng lên 1, -- giảm giá trị xuống 1. Cả hai là unary operators (chỉ cần một toán hạng). Các toán tử này có thể dùng dạng prefix (trước) hoặc postfix (sau), hoặc trong biểu thức phức tạp hơn.

Cú pháp

$x = 5;
$y = 5;
$x++;      // postfix increment
$y--;      // postfix decrement
++$y;      // prefix increment
--$x;      // prefix decrement

Khi dùng độc lập, postfix và prefix increment/decrement có hành vi tương tự. $x++ và ++$x đều tăng $x lên 1. Tương tự $y-- và --$y đều giảm $y xuống 1.

Ví dụ

Hiệu ứng postfix/prefix độc lập

<?php
$x = 5;
$y = 5;
$x++;      // postfix increment
$y--;      // postfix decrement
echo "x = $x y = $y\n";
++$y;      // prefix increment
--$x;      // prefix decrement
echo "x = $x y = $y\n";
?>

Kết quả

x = 6 y = 4
x = 5 y = 5

Trong biểu thức gán

Khi dùng trong biểu thức gán, postfix ++ hoặc -- có độ ưu tiên thấp hơn =. Do đó $a = $x++ cho $a = $x rồi mới $x++. Ngược lại, prefix ++/-- có độ ưu tiên cao hơn =. Vì vậy $b = --$y thực hiện --$y trước rồi gán kết quả cho $b.

<?php
$x = 5;
$y = 5;
$a = $x++;  // postfix increment
echo "a = $a x = $x\n";
$b = --$y;  // prefix decrement
echo "b = $b y = $y\n";
?>

Kết quả

a = 5 x = 6
b = 4 y = 4

Tăng/giảm với ký tự ASCII

Tăng/giảm trên biến ký tự ASCII cũng khả thi. Tăng cho ký tự tiếp theo trong bảng ASCII. Nếu vượt quá Z, vòng lặp tiếp theo lặp lại (Z thành AA). Các ký tự non-ASCII (ngoài A-Z, a-z, 0-9) bị bỏ qua bởi toán tử tăng.

<?php
$var = 'A';
for ($i = 1; $i <= 3; $i++) {
    echo ++$var . "\n";
}
$var1 = 1;
for ($i = 1; $i <= 3; $i++) {
    echo ++$var1 . "\n";
}
?>

Kết quả

B
C
D
2
3
4