PHP超入門 (17)
今回の話題は、前回と同様、非常に単純な計算なのですが、特殊な表記方法を
用いることについてのお話です。
ただし、後日お話する予定のPHPプログラムの、ある文法の書き方の中で多
用される表現方法なので、暗記はしなくてもよいですが、頭の片隅においてお
いて損はないないようです。
まぁ、PHPプログラムを作成するにあたり、今回の話題は、暗記はした方が
良いと私個人は思いますが。。。
■$a++ vs ++$a
さて、今回も暗号のような表記が出てきましたが、その意味はまったく単純で、
両者とも「変数$aに1を足して、その値を変数aに再び代入する」という意
味です。
数式的に書けば、
$a=$a+1
ということになります。
ただ、「$a++」と「++$a」という具合に2つの表記があることから、結果的に
は、両者は同じですが、その挙動に若干の(大きなか?)違いがあります。
「$a++」の場合は、「何かしらの式を処理したあとに1を加える」という処理
ですが、一方の、「++$a」は、「何かしらの式を処理する前に1を加える」と
いうというものです。
言葉で説明しても何のことやらサッパリ分からないと思いますので、非常に簡
単なプログラムを作成して、その挙動と結果を見れば、少しは分かりやすくな
ると思います。
では、まず、「$a++」の方から。。。
------------------
<?php
$a = 7;
print($a++."<br>");
print($a."<br>");
?>
------------------
このプログラムを「072-1.php」という名前で「C:\Inetpub\wwwroot\php」フ
ォルダに保存して
ブラウザのアドレス欄に「http://localhost/php/072-1.php」と入力します。
そうすると、次のようにブラウザに表示されるかと思います。
この結果を見ても分かるように最初の「$a++」は最初に代入した数である7と
なりますが、その次の、$aの値は「7+1」の結果の8と表示されます。
次に、「++$a」の場合のプログラムです。
------------------
<?php
$a = 7;
print(++$a."<br>");
print($a."<br>");
?>
------------------
このプログラムを同様に「072-2.php」という名前で「C:\Inetpub\wwwroot\ph
p」フォルダに保存して
ブラウザのアドレス欄に「http://localhost/php/072-2.php」と入力します。
そうすると、次のようにブラウザに表示されるかと思います。
このプログラムと最初のプログラムの違いは、「$a++」が「++$a」に変わって
いるだけですが、ブラウザの表示された結果を見ると、最初の「++$a」にはす
でに7に1を足した8がすでに表示されます。
このよう「++」が変数の後ろに書かれているか、前に書かれているかで、最終
的な結果は同じでも、1が足されるタイミングが異なることがお分かりになら
れたでしょうか?
特に、「$a++」は、後日話題として取り上げる予定の「ループ文」で頻用され
ますので、憶えていて損はないです。
■$a-- vs --$a
これも何かしらの暗号のように見えますが、上でお話した内容から推定すると、
なんとなく意味が分かるのではないかと思います。
そう、「変数$aから1を引いて、その値を変数aに再び代入する」という意
味で、「$a=$a−1」ということですが、上で書いた内容と同様、$aから
1を引くタイミングが異なります。
それを、上と同じような簡単なプログラムで確認してみます。
------------------
<?php
$a = 7;
print($a--."<br>");
print($a."<br>");
?>
------------------
これを、「072-3.php」という名前で、「C:\Inetpub\wwwroot\php」フォルダ
に保存して
ブラウザのアドレス欄に「http://localhost/php/072-3.php」と入力すると、
ブラウザには、最初の「$a--」は7で、次の「$a」で初めて1を引いた6が表
示されます。
同様に、「$a--」を「--$a」に変えた
------------------
<?php
$a = 7;
print(--$a."<br>");
print($a."<br>");
?>
------------------
の場合は、最初の「--$a」には既に1を引いた6が表示されます。
このように、意味は同じでも、「$a=$a+1」や「$a=$a−1」を特殊な
書き方ができ、実際のプログラムでも、非常に多用されるというか、こちらの
書き方の方が一般的に使われています。
参考までに、専門的な用語で言うと「++」は「加算子(インクリメント)」、
「--」は「減算子(デクリメント)」と呼ばれています。
一応、参考までに。。。