Incrementing/Decrementing Operators

Examples:

Here's a simple example script:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
echo "<h3>Postincrement</h3>";
$a = 5;
echo "Should be 5: " $a++ . "<br />\n";
echo "Should be 6: " $a "<br />\n";
 
echo "<h3>Preincrement</h3>";
$a = 5;
echo "Should be 6: " . ++$a "<br />\n";
echo "Should be 6: " $a "<br />\n";
 
echo "<h3>Postdecrement</h3>";
$a = 5;
echo "Should be 5: " $a-- . "<br />\n";
echo "Should be 4: " $a "<br />\n";
 
echo "<h3>Predecrement</h3>";
$a = 5;
echo "Should be 4: " . --$a "<br />\n";
echo "Should be 4: " $a "<br />\n";
?>
Arithmetic Operations on Character Variables

PHP follows Perl's convention when dealing with arithmetic operations on character variables and not C's. For example, in PHP and Perl $a = 'Z'; $a++; turns $a into 'AA', while in C a = 'Z'; a++; turns a into '[' (ASCII value of 'Z' is 90, ASCII value of '[' is 91). Note that character variables can be incremented but not decremented and even so only plain ASCII alphabets and digits (a-z, A-Z and 0-9) are supported. Incrementing/decrementing other character variables has no effect, the original string is unchanged.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
echo '== Alphabets ==' . PHP_EOL;
$s 'W';
for ($n=0; $n<6; $n++) {
    echo ++$s . PHP_EOL;
}
// Digit characters behave differently
echo '== Digits ==' . PHP_EOL;
$d 'A8';
for ($n=0; $n<6; $n++) {
    echo ++$d . PHP_EOL;
}
$d 'A08';
for ($n=0; $n<6; $n++) {
    echo ++$d . PHP_EOL;
}
?>

The above example will output:

== Characters ==
X
Y
Z
AA
AB
AC
== Digits ==
A9
B0
B1
B2
B3
B4
A09
A10
A11
A12
A13
A14
doc_php
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.