증가/감소 연산자

PHP는 C 스타일의 사전 및 사후 증가 및 감소 연산자를 지원합니다.

참고: 증가/감소 연산자는 숫자와 문자열에만 영향을 줍니다. 배열, 개체, 부울 및 리소스는 영향을 받지 않습니다. null 값을 줄이는 것도 효과가 없지만 값을 늘리면 1이 됩니다.

증가/감소 연산자

Example Name Effect
++$a Pre-increment Increments $a by one, then returns $a.
$a++ Post-increment Returns $a, then increments $a by one.
--$a Pre-decrement Decrements $a by one, then returns $a.
$a-- Post-decrement Returns $a, then decrements $a by one.

다음은 간단한 예제 스크립트입니다.

                  
<?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";
?>
                  
                

PHP는 C가 아닌 문자 변수에 대한 산술 연산을 처리할 때 Perl의 규칙을 따릅니다. 예를 들어, PHP와 Perl에서 $a = 'Z'; $a++;'AA'로 바꾸고 C에서 a = 'Z'; ++; a'['로 변환합니다('Z'의 ASCII 값은 90, '['의 ASCII 값은 91). 문자 변수는 증가할 수 있지만 감소할 수 없으며 일반 ASCII 알파벳과 숫자(a-z, A-Z 및 0-9)만 지원됩니다. 다른 문자 변수를 증가/감소해도 효과가 없으며 원래 문자열은 변경되지 않습니다.

예제 #1 문자 변수에 대한 산술 연산

                  
<?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;
}
?>
                  
                

위의 예는 다음을 출력합니다.

== Characters ==
X
Y
Z
AA
AB
AC
== Digits ==
A9
B0
B1
B2
B3
B4
A09
A10
A11
A12
A13
A14
                

부울을 늘리거나 줄여도 효과가 없습니다.