PHPでプログラミングを開発する際、最も基本的かつ頻繁に使用される操作の一つが数値の「足し算」です。
数値の計算は、ショッピングカートの合計金額算出やページネーションの実装、データの統計処理など、Webアプリケーションのあらゆる場面で必要不可欠な要素です。
PHPは動的型付け言語であるため、単純な足し算であっても、数値と文字列が混在した場合の挙動など、独自の仕様を理解しておくことが重要になります。
本記事では、PHPにおける基本的な足し算の方法から、算術演算子の使い方、さらには文字列が混じった際の処理の注意点まで、初心者の方にも分かりやすく順を追って解説します。
PHPにおける足し算の基本操作
PHPで足し算を行うには、算術演算子である「+(プラス)」記号を使用します。
この演算子は、左右に置かれた値(オペランド)を加算し、その結果を返します。
最もシンプルな形として、整数同士や浮動小数点数(小数)同士を足す方法を見ていきましょう。
数値同士の加算
変数に数値を代入し、それらを加算して結果を表示する基本的なコードは以下の通りです。
<?php
// 整数の足し算
$price1 = 100;
$price2 = 200;
$total = $price1 + $price2;
echo $total; // 結果を出力
?>
300
このように、数値が格納された変数同士を「+」で繋ぐだけで簡単に計算が可能です。
整数だけでなく、小数が含まれる場合も同様の記述で計算が行えます。
複数の値を一度に足す
3つ以上の値を連続して加算することも可能です。
<?php
$a = 10;
$b = 20;
$c = 30;
$result = $a + $b + $c;
echo $result;
?>
60
PHPの演算には優先順位がありますが、足し算のみの場合は左から順に処理されます。
代入演算子「+=」を使った足し算
既存の変数に値を加えたい場合、加算代入演算子「+=」を使うとコードを簡潔に記述できます。
これは、自分自身の値に新しい値を足して、その結果を再び自分自身に代入する操作です。
<?php
$count = 10;
// $count = $count + 5; と同じ意味
$count += 5;
echo $count;
?>
15
ループ処理(for文やforeach文)の中で合計値を蓄積していく際によく利用される手法です。
コードの可読性が高まるため、積極的に活用しましょう。
文字列と数値の混在:PHPの型変換(型ジャグリング)
PHPの大きな特徴として、型を厳密に意識しなくてもある程度自動で変換してくれるという点があります。
しかし、足し算において「文字列」を扱おうとすると、思わぬ挙動をすることがあります。
文字列としての数字を足す
PHPでは、数字が含まれる文字列であっても、算術演算の文脈では数値として扱おうとします。
<?php
$number = 10;
$string = "20";
// 文字列の"20"が数値の20に自動変換される
echo $number + $string;
?>
30
このように、クォーテーションで囲まれた数字も自動的に数値に変換されて加算されます。
結合演算子「.」と算術演算子「+」の違い
初心者の方が最も混同しやすいのが、文字列を繋げる記号との違いです。
JavaScriptなど他の言語では「+」が文字列の結合に使われることがありますが、PHPにおいて「+」は加算のみを、「.(ドット)」が文字列の結合を担います。
| 演算子 | 役割 | 例 ($a=1, $b=2) | 結果 |
|---|---|---|---|
| + | 足し算(加算) | $a + $b | 3 |
| . | 文字列の結合 | $a . $b | “12” |
この違いを理解していないと、計算結果が意図しない文字列になってしまうため注意が必要です。
PHP 8以降における注意点とエラー
PHPのバージョンアップに伴い、数値として不適切な文字列を足し算しようとした際のルールが厳格化されました。
かつてのPHPでは、数字で始まらない文字列(例:”abc”)を足そうとすると、それを「0」として扱って処理を続行していました。
しかし、最新のPHP(PHP 8.0以降)では、数値として解釈できない文字列が含まれる場合、Fatal Error(致命的なエラー)やTypeErrorが発生します。
<?php
// PHP 8.x 以降の挙動
$val1 = 10;
$val2 = "apple";
// 数値ではないため、エラーが発生する可能性がある
echo $val1 + $val2;
?>
外部からの入力値(フォームデータなど)を使って足し算を行う場合は、必ず事前に数値であるかどうかを確認する必要があります。
安全に足し算を行うために、is_numeric() 関数などでチェックを行うのがベストプラクティスです。
配列を「+」で足すとどうなるか
PHPでは、数値だけでなく「配列」に対しても「+」演算子を使用することができます。
これは一般的な足し算ではなく、「配列の結合(Union)」として機能します。
<?php
$array1 = ["a" => "apple", "b" => "banana"];
$array2 = ["b" => "berry", "c" => "cherry"];
// 配列を結合する
$result = $array1 + $array2;
print_r($result);
?>
Array
(
[a] => apple
[b] => banana
[c] => cherry
)
このとき、左側の配列($array1)にあるキーが優先され、右側の配列($array2)に同じキーがある場合は上書きされずに無視されます。
数値の足し算とは全く異なる性質を持つため、配列操作において「+」を使う際は注意が必要です。
まとめ
PHPでの足し算は、基本的に「+」演算子を使用するだけで簡単に行うことができます。
しかし、Webプログラミングの実践においては、単なる数値計算だけでなく、文字列との結合や型変換のルールを正しく理解しておくことが重要です。
特に、文字列結合には「.」を使い、数値計算には「+」を使うという区別は、PHPを扱う上での大原則です。
また、PHP 8以降では不正な文字列に対する挙動が厳しくなっているため、入力値のバリデーション(数値チェック)を習慣づけるようにしましょう。
これらの基本を押さえることで、バグの少ない堅牢なプログラムを作成できるようになります。
