【PHP入門】変数と代入演算子

変数へデータを代入する際、一般的にはイコール(=)を使用しますが、他にも代入の記述方法があります。

それらは主に再代入で使用されソースコードを簡潔に簡略的に記述する方法になります。

綺麗なソースコードを作成するための1つのテクニックになりますので覚えていきましょう。

代入演算子とは

代入演算子のおさらいですが、代入演算子は変数にデータを代入するために使用される演算子です。

次のソースコードは代入演算子の活用例になります。

ソースコード

<?php

// $numに10を代入
$num = 10;
// $numを出力
echo $num."\n";

?>

実行結果

10

再代入について

他の代入演算子をご紹介する前に、前提知識として再代入についてもおさらいします。

再代入とは変数に再度データを代入することですが、代入演算子の左側(左オペランドと呼びます)の変数を右側(右オペランドと呼びます)で使用することも可能です。

言葉だけだと伝わりづらいと思うので、実際のソースコードを見てみましょう。

ソースコード

<?php

// $numに10を代入
$num = 10;
// $numに$num+1を代入
$num = $num + 1;
// $numを出力
echo $num."\n";

?>

実行結果

11

6行目で$numの変数に$numに1を加算して代入するというソースコードを記述しています。

この実行時の動作は、$numに代入された10に1を加算して$numに再代入するということになります。そのため、実行結果では11が表示されます。

様々な代入演算子

他の代入演算子には、ソースコードを簡潔に簡略的に作成するためのものがあります。

まずは次のソースコードを見てください。

ソースコード

<?php

// $numに10を代入
$num = 10;
// $numに$num+2を代入し、出力
$num = $num + 2;
echo $num."\n";

// $numに10を代入
$num = 10;
// $numに$num-2を代入し、出力
$num = $num - 2;
echo $num."\n";

// $numに10を代入
$num = 10;
// $numに$num*2を代入し、出力
$num = $num * 2;
echo $num."\n";

// $numに10を代入
$num = 10;
// $numに$num/2を代入し、出力
$num = $num / 2;
echo $num."\n";

?>

実行結果

12
8
20
5

上記ソースコードは$num(データは10)に対して、四則演算を行い結果を出力するコードです。

四則演算時には左オペランドの変数を右オペランドでも使用しています。

ここで紹介する代入演算子はこれらの代入の記述を簡略化するものです。

実際には下記コードになります。

ソースコード

<?php

// $numに10を代入
$num = 10;
// $numに$num+2を代入し、出力
$num += 2;
echo $num."\n";

// $numに10を代入
$num = 10;
// $numに$num-2を代入し、出力
$num -= 2;
echo $num."\n";

// $numに10を代入
$num = 10;
// $numに$num*2を代入し、出力
$num *= 2;
echo $num."\n";

// $numに10を代入
$num = 10;
// $numに$num/2を代入し、出力
$num /= 2;
echo $num."\n";

?>

実行結果

12
8
20
5

実行結果は同じですが、6行目、12行目、18行目、24行目が先程のソースコードと変わっています。

これは簡略的な代入演算子を使用した記述方法になります。

それぞれの代入演算子と意味は下記です。

+=
→ 左オペランドの変数に右オペランドの値を加算して、左オペランドの変数に代入する

-=
→ 左オペランドの変数に右オペランドの値を減算して、左オペランドの変数に代入する

*=
→ 左オペランドの変数に右オペランドの値を乗算して、左オペランドの変数に代入する

/=
→ 左オペランドの変数に右オペランドの値を除算して、左オペランドの変数に代入する

つまり、左オペランドの変数を右オペランドでも使用し、単純に四則演算を行う場合は、これらの代入演算子を用いて記述することができます。

まとめ

代入演算子についてご紹介しました。簡略的な記述ができる代入演算子は必須で覚えなくてもソースコードを作成できますが、分かりやすいソースコードを書くための1つのテクニックとして覚えておけると良いかもしれません。