PHP hỗ trợ các toán tử trước và sau khi tăng và sau khi tăng cường và giảm giá.
Các toán tử tăng/giảmLưu ý: Các toán tử tăng/giảm chỉ ảnh hưởng đến số và chuỗi. Mảng, đối tượng, booleans và tài nguyên không bị ảnh hưởng. Các giá trị
null
giảm cũng không có hiệu lực, nhưng việc tăng chúng dẫn đến1
.: The increment/decrement operators only affect numbers and strings. Arrays, objects, booleans and resources are not affected. Decrementingnull
values has no effect too, but incrementing them results in1
.
++ $ a | Trước khi tăng | Tăng $ a từng người một, sau đó trả về $ a. |
$ a ++ | Hậu kỳ | Trả về $ a, sau đó tăng $ a từng người một. |
-$ a | Tuyên bố trước | Giảm $ a từng người một, sau đó trả về $ a. |
$ a-- | Sự suy thoái sau | Trả về $ a, sau đó giảm $ a từng người một. |
Đây là một kịch bản ví dụ đơn giản:
PHP tuân theo quy ước của Perl khi xử lý các hoạt động số học trên các biến ký tự chứ không phải C. Ví dụ, trong PHP và Perl $a = 'Z'; $a++;
biến $a
thành 'AA'
, trong khi trong C a = 'Z'; a++;
biến null
0 thành null
1 [giá trị ASCII của null
2 là 90, giá trị ASCII của null
1 là 91]. Lưu ý rằng các biến ký tự có thể được tăng lên nhưng không bị giảm và thậm chí chỉ có bảng chữ cái và chữ số ASCII đơn giản [A-Z, A-Z và 0-9] được hỗ trợ. Tăng/giảm các biến ký tự khác không có tác dụng, chuỗi ban đầu không thay đổi.
Ví dụ #1 Hoạt động số học trên các biến ký tự
null
4
Ví dụ trên sẽ xuất ra:
== Characters == X Y Z AA AB AC == Digits == A9 B0 B1 B2 B3 B4 A09 A10 A11 A12 A13 A14
Booleans tăng hoặc giảm không có tác dụng.
Hartmut tại php dot net ¶ ¶
10 năm trước
null
5
null
6
null
7
null
8
null
9
1
0aluciffer tại hotmail dot com ¶
7 năm trước
1
1
1
2
1
3Cleong at letStalk dot com ¶ ¶
20 năm trước
1
4
1
5
1
6
1
7
1
0Ayyappan dot ashok tại gmail dot com ¶ ¶
6 năm trước
1
9
0
"Preincrement
";
$a = 5;
echo "Should be 6: " . ++$a . "\n";
echo "Should be 6: " . $a . "\n";echo
"Postdecrement
";
$a = 5;
echo "Should be 5: " . $a-- . "\n";
echo "Should be 4: " . $a . "\n";echo
"Predecrement
";
$a = 5;
echo "Should be 4: " . --$a . "\n";
echo "Should be 4: " . $a . "\n";
?>
1Ayyappan dot ashok tại gmail dot com ¶ ¶
6 năm trước
echo echo"
2Preincrement
";
$a = 5;
echo "Should be 6: " . ++$a . "\n";
echo "Should be 6: " . $a . "\n";Postdecrement
";
$a = 5;
echo "Should be 5: " . $a-- . "\n";
echo "Should be 4: " . $a . "\n";Predecrement
";
$a = 5;
echo "Should be 4: " . --$a . "\n";
echo "Should be 4: " . $a . "\n";
?>
echo echo"
3Preincrement
";
$a = 5;
echo "Should be 6: " . ++$a . "\n";
echo "Should be 6: " . $a . "\n";Postdecrement
";
$a = 5;
echo "Should be 5: " . $a-- . "\n";
echo "Should be 4: " . $a . "\n";Predecrement
";
$a = 5;
echo "Should be 4: " . --$a . "\n";
echo "Should be 4: " . $a . "\n";
?>
echo echo"
4Preincrement
";
$a = 5;
echo "Should be 6: " . ++$a . "\n";
echo "Should be 6: " . $a . "\n";Postdecrement
";
$a = 5;
echo "Should be 5: " . $a-- . "\n";
echo "Should be 4: " . $a . "\n";Predecrement
";
$a = 5;
echo "Should be 4: " . --$a . "\n";
echo "Should be 4: " . $a . "\n";
?>
echo echo"
5Preincrement
";
$a = 5;
echo "Should be 6: " . ++$a . "\n";
echo "Should be 6: " . $a . "\n";Postdecrement
";
$a = 5;
echo "Should be 5: " . $a-- . "\n";
echo "Should be 4: " . $a . "\n";Predecrement
";
$a = 5;
echo "Should be 4: " . --$a . "\n";
echo "Should be 4: " . $a . "\n";
?>
echo echo"
6Preincrement
";
$a = 5;
echo "Should be 6: " . ++$a . "\n";
echo "Should be 6: " . $a . "\n";Postdecrement
";
$a = 5;
echo "Should be 5: " . $a-- . "\n";
echo "Should be 4: " . $a . "\n";Predecrement
";
$a = 5;
echo "Should be 4: " . --$a . "\n";
echo "Should be 4: " . $a . "\n";
?>
echo echo"
5Preincrement
";
$a = 5;
echo "Should be 6: " . ++$a . "\n";
echo "Should be 6: " . $a . "\n";Postdecrement
";
$a = 5;
echo "Should be 5: " . $a-- . "\n";
echo "Should be 4: " . $a . "\n";Predecrement
";
$a = 5;
echo "Should be 4: " . --$a . "\n";
echo "Should be 4: " . $a . "\n";
?>
echo echo"
8Preincrement
";
$a = 5;
echo "Should be 6: " . ++$a . "\n";
echo "Should be 6: " . $a . "\n";Postdecrement
";
$a = 5;
echo "Should be 5: " . $a-- . "\n";
echo "Should be 4: " . $a . "\n";Predecrement
";
$a = 5;
echo "Should be 4: " . --$a . "\n";
echo "Should be 4: " . $a . "\n";
?>
echo echo"
9Preincrement
";
$a = 5;
echo "Should be 6: " . ++$a . "\n";
echo "Should be 6: " . $a . "\n";Postdecrement
";
$a = 5;
echo "Should be 5: " . $a-- . "\n";
echo "Should be 4: " . $a . "\n";Predecrement
";
$a = 5;
echo "Should be 4: " . --$a . "\n";
echo "Should be 4: " . $a . "\n";
?>
$a = 'Z'; $a++;
0
1
0DSBeam tại Gmail Dot Com ¶ ¶
13 năm trước
$a = 'Z'; $a++;
2
$a = 'Z'; $a++;
3
1
0Leo Zandvliet ¶ ¶
13 năm trước
$a = 'Z'; $a++;
5
$a = 'Z'; $a++;
6
$a = 'Z'; $a++;
7
$a = 'Z'; $a++;
8
1
0Leo Zandvliet ¶ ¶
3 năm trước
$a
0