--
演算子だよ
今の数字から1を引くよ
変数の前に置く(--num)か後に置く(num--)かで結果が変わる場合があるよ
簡単に書くよ
--とは
プログラミングで出てくる演算子のひとつ
であり
「今の数字から1を引きますよ~」を意味する演算子
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「変数」と「演算子」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
変数は「プログラミング言語における『値を入れておく箱』」です。
処理の途中で値を入れたり、逆に取り出したりできます。
演算子は「どんな演算をするか表す記号」です。
「+」「-」「*(×)」「/(÷)」をはじめ、なんか いろいろ あります。
以上を踏まえて
変数の値から1を引くときに使う演算子
が「--」です。
例えば、以下のような処理が あったとしましょう。
num = 1;
num--;
これは
・変数numに1を入れてください
・変数numの値から1を引いてください
な命令です。
この処理が終わった後、変数numの値は0になっています。
注意点として「--」を書く場所によって処理結果が変わることがあります。
「--」は変数の前にも後ろにも置けます。
「--num」と書いたり「num--」と書いたりできるのです。
この2つは違う結果になる場合があります。
専門家の間では、内部的にやっていることが違うので処理速度が違うとかかんとか議論されることもあるようですが、それはひとまず無視しますね。
ここでは純粋に結果が変わる場合を取り上げます。
まずは、PHPで書いた2つの処理を見てください。
<?php
$num = 1;
$ret = --$num;
print $ret;
<?php
$num = 1;
$ret = $num--;
print $ret;
違いは3行目の
$ret = --$num;
と
$ret = $num--;
だけです。
それぞれの処理の結果はどうなると思いますか?
答えは、上の処理の$retの値は「0」になります。
それに対して、下の処理の$retの値は「1」のままです。
どうしてでしょうね?
実は
$ret = --$num;
は
$ret = (--$num);
っぽいイメージになります。
$numから1を引いて、その結果が$retに入れられるのです。
$num = $num - 1;
$ret = $num;
と同じ結果になります。
それに対して
$ret = $num--;
は
($ret = $num)--;
っぽいイメージです。
$numの値を$retに入れて、その後で$numから1が引かれるのです。
$ret = $num;
$num = $num - 1;
と同じ結果になります。
単純に1を引きたいだけであれば、前に置こうと後ろに置こうと大きな違いは ありませんけどね。
一応、覚えておいてください。
カッコ付けて、いろいろな処理を1行で書きたい場合は、意識しておく必要があります。
一言でまとめるよ
まぁ「--」って単語が出てきたら「1を引きなさいな演算子なんだな~」と お考えください。






