Source of: /manual/en/language.operators.increment.php
<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.operators.inc";
$setup = array (
'home' =>
array (
0 => 'index.php',
1 => 'PHP Manual',
),
'head' =>
array (
0 => 'UTF-8',
1 => 'en',
),
'this' =>
array (
0 => 'language.operators.increment.php',
1 => 'Incrementing/Decrementing Operators',
),
'up' =>
array (
0 => 'language.operators.php',
1 => 'Operators',
),
'prev' =>
array (
0 => 'language.operators.execution.php',
1 => 'Execution Operators',
),
'next' =>
array (
0 => 'language.operators.logical.php',
1 => 'Logical Operators',
),
);
$setup["toc"] = $TOC;
$setup["parents"] = $PARENTS;
manual_setup($setup);
manual_header();
?>
<div id="language.operators.increment" class="sect1">
<h2 class="title">Incrementing/Decrementing Operators</h2>
<p class="para">
PHP supports C-style pre- and post-increment and decrement
operators.
</p>
<blockquote><p><b class="note">Note</b>:
<span class="simpara">
The increment/decrement operators do not affect boolean values.
Decrementing <b><tt class="constant">NULL</tt></b> values has no effect too, but incrementing them
results in <i>1</i>.
</span>
</p></blockquote>
<table class="doctable table">
<caption><b>Increment/decrement Operators</b></caption>
<thead valign="middle">
<tr valign="middle">
<th>Example</th>
<th>Name</th>
<th>Effect</th>
</tr>
</thead>
<tbody valign="middle" class="tbody">
<tr valign="middle">
<td align="left">++$a</td>
<td align="left">Pre-increment</td>
<td align="left">Increments <var class="varname">$a</var> by one, then returns <var class="varname">$a</var>.</td>
</tr>
<tr valign="middle">
<td align="left">$a++</td>
<td align="left">Post-increment</td>
<td align="left">Returns <var class="varname">$a</var>, then increments <var class="varname">$a</var> by one.</td>
</tr>
<tr valign="middle">
<td align="left">--$a</td>
<td align="left">Pre-decrement</td>
<td align="left">Decrements <var class="varname">$a</var> by one, then returns <var class="varname">$a</var>.</td>
</tr>
<tr valign="middle">
<td align="left">$a--</td>
<td align="left">Post-decrement</td>
<td align="left">Returns <var class="varname">$a</var>, then decrements <var class="varname">$a</var> by one.</td>
</tr>
</tbody>
</table>
<p class="para">
Here's a simple example script:
</p><div class="informalexample">
<div class="example-contents programlisting">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB"><?php<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"<h3>Postincrement</h3>"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$a </span><span style="color: #007700">= </span><span style="color: #0000BB">5</span><span style="color: #007700">;<br />echo </span><span style="color: #DD0000">"Should be 5: " </span><span style="color: #007700">. </span><span style="color: #0000BB">$a</span><span style="color: #007700">++ . </span><span style="color: #DD0000">"<br />\n"</span><span style="color: #007700">;<br />echo </span><span style="color: #DD0000">"Should be 6: " </span><span style="color: #007700">. </span><span style="color: #0000BB">$a </span><span style="color: #007700">. </span><span style="color: #DD0000">"<br />\n"</span><span style="color: #007700">;<br /><br />echo </span><span style="color: #DD0000">"<h3>Preincrement</h3>"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$a </span><span style="color: #007700">= </span><span style="color: #0000BB">5</span><span style="color: #007700">;<br />echo </span><span style="color: #DD0000">"Should be 6: " </span><span style="color: #007700">. ++</span><span style="color: #0000BB">$a </span><span style="color: #007700">. </span><span style="color: #DD0000">"<br />\n"</span><span style="color: #007700">;<br />echo </span><span style="color: #DD0000">"Should be 6: " </span><span style="color: #007700">. </span><span style="color: #0000BB">$a </span><span style="color: #007700">. </span><span style="color: #DD0000">"<br />\n"</span><span style="color: #007700">;<br /><br />echo </span><span style="color: #DD0000">"<h3>Postdecrement</h3>"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$a </span><span style="color: #007700">= </span><span style="color: #0000BB">5</span><span style="color: #007700">;<br />echo </span><span style="color: #DD0000">"Should be 5: " </span><span style="color: #007700">. </span><span style="color: #0000BB">$a</span><span style="color: #007700">-- . </span><span style="color: #DD0000">"<br />\n"</span><span style="color: #007700">;<br />echo </span><span style="color: #DD0000">"Should be 4: " </span><span style="color: #007700">. </span><span style="color: #0000BB">$a </span><span style="color: #007700">. </span><span style="color: #DD0000">"<br />\n"</span><span style="color: #007700">;<br /><br />echo </span><span style="color: #DD0000">"<h3>Predecrement</h3>"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$a </span><span style="color: #007700">= </span><span style="color: #0000BB">5</span><span style="color: #007700">;<br />echo </span><span style="color: #DD0000">"Should be 4: " </span><span style="color: #007700">. --</span><span style="color: #0000BB">$a </span><span style="color: #007700">. </span><span style="color: #DD0000">"<br />\n"</span><span style="color: #007700">;<br />echo </span><span style="color: #DD0000">"Should be 4: " </span><span style="color: #007700">. </span><span style="color: #0000BB">$a </span><span style="color: #007700">. </span><span style="color: #DD0000">"<br />\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?></span>
</span>
</code></div>
</div>
</div><p>
</p>
<p class="para">
PHP follows Perl's convention when dealing with arithmetic operations
on character variables and not C's. For example, in Perl
<i>'Z'+1</i> turns into <i>'AA'</i>, while in C
<i>'Z'+1</i> turns into <i>'['</i>
( <i>ord('Z') == 90</i>, <i>ord('[') == 91</i> ).
Note that character variables can be incremented but not decremented and
even so only plain ASCII characters (a-z and A-Z) are supported.
</p><div class="example">
<p><b>Example #1 Arithmetic Operations on Character Variables</b></p>
<div class="example-contents programlisting">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB"><?php<br />$i </span><span style="color: #007700">= </span><span style="color: #DD0000">'W'</span><span style="color: #007700">;<br />for (</span><span style="color: #0000BB">$n</span><span style="color: #007700">=</span><span style="color: #0000BB">0</span><span style="color: #007700">; </span><span style="color: #0000BB">$n</span><span style="color: #007700"><</span><span style="color: #0000BB">6</span><span style="color: #007700">; </span><span style="color: #0000BB">$n</span><span style="color: #007700">++) {<br /> echo ++</span><span style="color: #0000BB">$i </span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?></span>
</span>
</code></div>
</div>
<div class="example-contents para"><p>The above example will output:</p></div>
<div class="example-contents screen">
<div class="cdata"><pre>
X
Y
Z
AA
AB
AC
</pre></div>
</div>
</div><p>
</p>
<p class="para">
Incrementing or decrementing booleans has no effect.
</p>
</div><?php manual_footer(); ?>