Kiểu tiền tố và hậu tố trong PHP
Trên thực tế, phép toán tăng và giảm
có thể được viết theo hai cách. Ở dạng
hậu tố
phép toán được viết sau tên biến,
như thế này: $a++, còn ở dạng
tiền tố
- trước tên biến, như thế này:
++$a. Hãy cùng xem các ví dụ
để thấy sự khác biệt giữa hai cách.
Trong ví dụ tiếp theo, lệnh echo đầu tiên sẽ hiển thị
0,
bởi vì đầu tiên thao tác xuất ra màn hình sẽ thực hiện,
và chỉ sau đó biến mới tăng lên:
<?php
$num = 0;
echo $num++; // hiển thị 0, vì biến chỉ tăng sau khi echo
echo $num; // hiển thị 1 - biến đã thay đổi
?>
Và bây giờ biến sẽ tăng lên trước, sau đó mới thực hiện xuất ra màn hình:
<?php
$num = 0;
echo ++$num; // hiển thị 1 - biến tăng ngay lập tức
?>
Hành vi như vậy không chỉ đúng với việc xuất ra màn hình, mà còn với phép gán:
<?php
$num1 = 0;
$num2 = $num1++; // biến $num2 sẽ được gán giá trị 0
echo $num2; // hiển thị 0
echo $num1; // hiển thị 1 - biến $num1 thay đổi sau khi gán vào $num2
?>
Và bây giờ hãy đổi từ dạng hậu tố sang tiền tố:
<?php
$num1 = 0;
$num2 = ++$num1; // biến $num2 sẽ được gán giá trị 1
echo $num2; // hiển thị 1
?>
Nếu thao tác của chúng ta được thực hiện trên một dòng riêng biệt, thì không có sự khác biệt giữa dạng tiền tố và hậu tố :
<?php
$num = 0;
++$num;
$num++;
echo $num; // hiển thị 2
?>
Không chạy code, hãy xác định xem sẽ hiển thị gì trên màn hình:
<?php
$num = 3;
echo ++$num;
?>
Không chạy code, hãy xác định xem sẽ hiển thị gì trên màn hình:
<?php
$num = 3;
echo $num++;
?>
Không chạy code, hãy xác định xem sẽ hiển thị gì trên màn hình:
<?php
$num = 3;
echo --$num;
?>
Không chạy code, hãy xác định xem sẽ hiển thị gì trên màn hình:
<?php
$num = 3;
echo $num--;
?>
Không chạy code, hãy xác định xem sẽ hiển thị gì trên màn hình:
<?php
$num1 = 3;
$num2 = ++$num1;
echo $num1;
echo $num2;
?>
Không chạy code, hãy xác định xem sẽ hiển thị gì trên màn hình:
<?php
$num1 = 3;
$num2 = $num1++;
echo $num1;
echo $num2;
?>
Không chạy code, hãy xác định xem sẽ hiển thị gì trên màn hình:
<?php
$num1 = 3;
$num2 = --$num1;
echo $num1;
echo $num2;
?>
Không chạy code, hãy xác định xem sẽ hiển thị gì trên màn hình:
<?php
$num1 = 3;
$num2 = $num1--;
echo $num1;
echo $num2;
?>
Không chạy code, hãy xác định xem sẽ hiển thị gì trên màn hình:
<?php
$num1 = 3;
$num1++;
$num2 = $num1--;
echo $num1++;
echo --$num2;
?>