PHP는 C 형식의 사전, 사후 증가 및 감소 연산자를 지원합니다.
Note: 증가/감소 연산자는 논리 값에 영향을 주지 않습니다. NULL 값을 감소하는 것도 영향이 없지만, 증가시키면 1이 됩니다.
예제 | 이름 | 효과 |
---|---|---|
++$a | Pre-increment | $a를 1 증가하고, $a를 반환. |
$a++ | Post-increment | $a를 반환하고, $a를 1 증가. |
--$a | Pre-decrement | $a를 1 감소하고, $a를 반환. |
$a-- | Post-decrement | $a를 반환하고, $a를 1 감소. |
간단한 예제 스크립트입니다:
<?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가 아닌 펄의 규정을 따릅니다. 예를 들면, 펄에서 'Z'+1은 'AA'가 되지만, C에서 'Z'+1은 '['( ord('Z') == 90, ord('[') == 91)입니다. 문자 변수는 증가만 할 수 있고, 감소는 할 수 없으며, 아스키 알파벳 문자(a-z와 A-Z)만 지원합니다.
Example #1 문자 변수에 계산 연산
<?php
$i = 'W';
for ($n=0; $n<6; $n++) {
echo ++$i . "\n";
}
?>
위 예제의 출력:
X Y Z AA AB AC
논리값에 대한 증가나 감소는 영향이 없습니다.