증가/감소 연산자
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
부울을 늘리거나 줄여도 효과가 없습니다.