Trong PHP, $a++
và ++$a
đều là toán tử tăng (increment operator), nhưng chúng có một sự khác biệt quan trọng về cách thức hoạt động của chúng. Dưới đây là sự phân biệt giữa hai biểu thức này:
$a++
(Tăng hậu tố)$a
sau khi giá trị hiện tại của biến được sử dụng trong biểu thức.$a
được trả về trước khi tăng.$a = 5; $b = $a++; // Giá trị của $b sẽ là 5, sau đó $a sẽ trở thành 6 echo $b; // Kết quả: 5 echo $a; // Kết quả: 6
++$a
(Tăng tiền tố)$a
trước khi giá trị mới được sử dụng trong biểu thức.$a
được tăng trước khi trả về.$a = 5; $b = ++$a; // $a sẽ trở thành 6 trước khi gán cho $b, nên $b sẽ là 6 echo $b; // Kết quả: 6 echo $a; // Kết quả: 6
Toán tử | Hành động | Giá trị trả về |
---|---|---|
$a++ | Tăng sau khi sử dụng giá trị | Giá trị cũ |
++$a | Tăng trước khi sử dụng giá trị | Giá trị mới |
$a++
khi bạn muốn sử dụng giá trị hiện tại của $a
trong biểu thức trước khi nó được tăng.++$a
khi bạn muốn sử dụng giá trị đã được tăng ngay lập tức trong biểu thức.