色々な代入演算子

変数には単に値を代入するだけでなく、元々変数に格納されていた値に対して演算を行った結果を再度変数に格納するといった使われ方をすることがあります。このような場合に簡潔に記述するための専用の代入演算子が用意されています。ここでは PHP で用意されている色々な代入演算子について解説します。

数値用の代入演算子

例えば変数に代入されている値を 2 倍して、同じ変数に再度代入する場合は次のように記述することができます。

$num = 15;
$num = $num * 2;

少し慣れていないと変な風に見えますが、代入演算子 = は右辺の値を左辺へ代入するものなので、右辺で計算した結果を同じ変数に再度代入していることになります。少し丁寧に書くと次のように記述した場合と同じです。

$num = 15;
$tmp = $num * 2;
$num = $tmp;

このように演算した結果を再度同じ変数に代入する処理はよく行われるため、専用の演算子が用意されています。

+=, -=, *=, /=, %=

これらは数値オブジェクトで用意されている四則演算用の演算子に「=」を付けたものです。次のように使います。

変数 += 式
変数 -= 式
変数 *= 式
変数 /= 式
変数 %= 式

これらはそれぞれ次のように記述した場合と同じです。

変数 = 変数 + 式
変数 = 変数 - 式
変数 = 変数 * 式
変数 = 変数 / 式
変数 = 変数 % 式

この演算子を使うことで、最初の例は次のように記述することができます。

$num = 10;
$num *= 2;  // 20

これは次のように記述した場合と同じです。

$num = 10;
$num = $num * 2;  // 20

文字列用の代入演算子

次に文字列の場合です。例えば変数に代入されている値に別の文字列を連結して、同じ変数に再度代入する場合は次のように記述することができます。

$name = "山田";
$name = $name."さん";

このように変数に別の文字列を連結して元の変数に代入する場合は、次の演算子が用意されています。

.=

使い方は次の通りです。

$name = "山田";
$name .= "さん";

これは次のように記述した場合と同じです。

$name = "山田";
$name = $name.'さん';

これらの演算子を使用することで、少しだけプログラムが簡潔になると同時に、元の変数の値に何かしら手を加えて再度同じ変数に代入しているという意図を明確にすることができます。

※ 演算子に関する優先順位については「すべての演算子の優先順位と結合順位」を参照して下さい。

サンプルコード

では簡単なプログラムで試してみます。

<?php
$num = 40;
echo "num = ".$num."\n";

$num += 25;
echo "num = ".$num."\n";

$str = '福岡';
echo "str = ".$str."\n";

$str .= "支店";
echo "str = ".$str."\n";

作成したプログラムを sample.php として保存しました。その後でコマンドプロンプトを起動し、次のように実行しました。

php sample.php

色々な代入演算子

変数に代入した値に別の数値を加算した結果を同じ変数に改めて代入したり、文字列に別の文字列を連結して同じ変数に改めて代入することができました。

-- --

PHP で用意されている色々な代入演算子について解説ました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。