PHPでの足し算や引き算について

採用はこちら

PHPでは、数値の足し算や引き算を行うときに、算術演算子を使います。

足し算には +、引き算には - を使います。

<?php
echo 1 + 2;
?>

出力結果は次のようになります。

3

引き算の場合は、次のように書きます。

<?php
echo 10 - 3;
?>

出力結果は次の通りです。

7

PHPの足し算・引き算は、商品価格の合計、在庫数の増減、ポイント計算、残高計算、税込価格の計算など、Web制作やシステム開発のさまざまな場面で使われます。

目次

PHPで足し算をする方法

PHPで足し算をするときは、+ 演算子を使います。

<?php
$result = 10 + 5;

echo $result;
?>

出力結果:

15

このコードでは、10 + 5 の計算結果である 15$result に代入され、echo で表示されています。

変数を使った足し算

実際のPHPでは、数値をそのまま書くよりも、変数に入れて計算することが多いです。

<?php
$a = 10;
$b = 5;

$result = $a + $b;

echo $result;
?>

出力結果:

15

$a には 10$b には 5 が入っています。

$result = $a + $b;

この部分で、10 + 5 が計算され、結果の 15$result に入ります。

複数の数値を足し算する

PHPでは、3つ以上の数値もまとめて足し算できます。

<?php
$total = 100 + 200 + 300;

echo $total;
?>

出力結果:

600

変数を使う場合は、次のように書けます。

<?php
$price1 = 1200;
$price2 = 800;
$price3 = 500;

$total = $price1 + $price2 + $price3;

echo $total;
?>

出力結果:

2500

このような書き方は、商品価格の合計や注文金額の計算などでよく使います。

PHPで引き算をする方法

PHPで引き算をするときは、- 演算子を使います。

<?php
$result = 10 - 3;

echo $result;
?>

出力結果:

7

10 から 3 を引いた結果が表示されます。

変数を使った引き算

引き算も、変数を使って書くことができます。

<?php
$money = 10000;
$used = 3500;

$remaining = $money - $used;

echo $remaining;
?>

出力結果:

6500

この例では、$money に入っている 10000 から、$used に入っている 3500 を引いています。

その結果、残りの金額である 6500$remaining に代入されます。

複数の数値を引き算する

複数の数値を続けて引くこともできます。

<?php
$result = 100 - 20 - 30;

echo $result;
?>

出力結果:

50

この計算は、左から順番に行われます。

100 - 20 - 30

は、次のように計算されます。

(100 - 20) - 30

つまり、

80 - 30

となり、結果は 50 です。

足し算と引き算を組み合わせる

足し算と引き算は、同じ式の中で組み合わせることもできます。

<?php
$result = 100 + 50 - 30;

echo $result;
?>

出力結果:

120

この場合、次のように計算されます。

100 + 50 = 150
150 - 30 = 120

商品価格に送料を足して、クーポン割引を引くような場面でも使えます。

<?php
$productPrice = 3000;
$shippingFee = 500;
$couponDiscount = 800;

$total = $productPrice + $shippingFee - $couponDiscount;

echo "お支払い金額は " . $total . " 円です。";
?>

出力結果:

お支払い金額は 2700 円です。

小数の足し算・引き算

PHPでは、整数だけでなく小数も計算できます。

<?php
$a = 10.5;
$b = 2.3;

$result = $a + $b;

echo $result;
?>

出力結果:

12.8

引き算も同じようにできます。

<?php
$a = 10.5;
$b = 2.3;

$result = $a - $b;

echo $result;
?>

出力結果:

8.2

ただし、小数を扱う場合は、計算誤差に注意が必要です。

たとえば、金額計算では小数をそのまま扱うのではなく、できるだけ「円」などの整数単位で管理する方が安全です。

<?php
$price = 1000; // 円
$discount = 150; // 円

$total = $price - $discount;

echo $total . "円";
?>

出力結果:

850円

税込計算などで小数が発生する場合は、floor()ceil()round() などを使って端数処理を行います。

<?php
$price = 980;
$taxRate = 0.10;

$tax = floor($price * $taxRate);
$total = $price + $tax;

echo $total . "円";
?>

この例では、消費税額を floor() で切り捨てています。

実際のシステムでは、端数を切り捨てるのか、切り上げるのか、四捨五入するのかを事前に決めておくことが大切です。

代入しながら足し算する

PHPでは、現在の変数の値に数値を足して、再び同じ変数に代入することができます。

<?php
$count = 10;

$count = $count + 5;

echo $count;
?>

出力結果:

15

このコードでは、$count の現在の値である 105 を足し、その結果を再び $count に代入しています。

+= を使った足し算

上のコードは、+= を使うと短く書けます。

<?php
$count = 10;

$count += 5;

echo $count;
?>

出力結果:

15

次の2つは同じ意味です。

$count = $count + 5;
$count += 5;

+= は、合計金額を増やす処理や、カウントを加算する処理でよく使われます。

<?php
$total = 0;

$total += 1200;
$total += 800;
$total += 500;

echo $total;
?>

出力結果:

2500

代入しながら引き算する

引き算にも、省略した書き方があります。

<?php
$count = 10;

$count = $count - 3;

echo $count;
?>

出力結果:

7

このコードは、$count の値から 3 を引き、その結果を再び $count に代入しています。

-= を使った引き算

上のコードは、-= を使うと短く書けます。

<?php
$count = 10;

$count -= 3;

echo $count;
?>

出力結果:

7

次の2つは同じ意味です。

$count = $count - 3;
$count -= 3;

-= は、在庫数を減らす処理や、ポイントを消費する処理などでよく使われます。

<?php
$stock = 10;
$orderQuantity = 3;

$stock -= $orderQuantity;

echo $stock;
?>

出力結果:

7

1ずつ足す・1ずつ引く

PHPでは、変数の値を1だけ増やしたり、1だけ減らしたりする専用の書き方があります。

1増やす場合は ++、1減らす場合は -- を使います。

インクリメント:++

++ は、変数の値を1増やす演算子です。

<?php
$count = 1;

$count++;

echo $count;
?>

出力結果:

2

これは、次のコードと同じ意味です。

$count = $count + 1;

または、次のようにも書けます。

$count += 1;

カウンターやループ処理などでよく使われます。

デクリメント:--

-- は、変数の値を1減らす演算子です。

<?php
$count = 5;

$count--;

echo $count;
?>

出力結果:

4

これは、次のコードと同じ意味です。

$count = $count - 1;

または、次のようにも書けます。

$count -= 1;

++-- は、基本的には整数などの数値に対して使うと考えると分かりやすいです。

PHPには文字列に対する特殊なインクリメントの挙動もありますが、通常のWeb制作では、カウントアップやカウントダウンのために数値へ使うのが一般的です。

++$count$count++ の違い

PHPでは、インクリメントには次の2種類があります。

++$count
$count++

どちらも $count の値を1増やします。

ただし、式の中で使う場合、値を増やすタイミングが異なります。

$count++:後置インクリメント

<?php
$count = 1;

echo $count++;
echo "\n";
echo $count;
?>

出力結果:

1
2

$count++ は、現在の値を使ったあとで、変数の値を1増やします。

この例では、まず現在の値である 1 が表示されます。

そのあとで $count2 になります。

++$count:前置インクリメント

<?php
$count = 1;

echo ++$count;
echo "\n";
echo $count;
?>

出力結果:

2
2

++$count は、先に変数の値を1増やしてから、その値を使います。

この例では、最初に $count2 になり、その 2 が表示されます。

$count----$count の違い

デクリメントにも、後置と前置があります。

$count--:後置デクリメント

<?php
$count = 5;

echo $count--;
echo "\n";
echo $count;
?>

出力結果:

5
4

$count-- は、現在の値を使ったあとで、変数の値を1減らします。

そのため、最初の echo では 5 が表示され、その後 $count4 になります。

--$count:前置デクリメント

<?php
$count = 5;

echo --$count;
echo "\n";
echo $count;
?>

出力結果:

4
4

--$count は、先に変数の値を1減らしてから、その値を使います。

そのため、最初の echo で表示される値も 4 になります。

PHPの計算でカッコを使う

計算の順番を分かりやすくしたい場合は、カッコ () を使います。

<?php
$result = (100 + 50) - 30;

echo $result;
?>

出力結果:

120

カッコの中が先に計算されます。

100 + 50 = 150
150 - 30 = 120

カッコの位置によって、結果が変わることもあります。

<?php
$result = 100 - (50 - 30);

echo $result;
?>

出力結果:

80

この場合は、先にカッコの中が計算されます。

50 - 30 = 20
100 - 20 = 80

足し算と引き算だけの式では左から順に計算されますが、掛け算や割り算が混ざると優先順位が変わります。

<?php
echo 1 + 5 * 3;
?>

出力結果:

16

これは、掛け算が先に計算されるためです。

1 + (5 * 3)

意図した順番で計算したい場合は、カッコを使うと安全です。

<?php
echo (1 + 5) * 3;
?>

出力結果:

18

文字列の数値を足し算・引き算する場合

PHPでは、"100" のように数値として解釈できる文字列を、数値計算に使うことができます。

<?php
$a = "100";
$b = "50";

echo $a + $b;
?>

出力結果:

150

このように、文字列であっても中身が数値であれば、PHPが数値として解釈して計算します。

ただし、実務では自動変換に頼りすぎない方が安全です。

特にフォームから送られてくる値は文字列として扱われることが多いため、計算前に数値へ変換したり、入力値を検証したりすることが大切です。

(int) で整数に変換する

整数として扱いたい場合は、(int) を使います。

<?php
$a = "100";
$b = "50";

$result = (int)$a + (int)$b;

echo $result;
?>

出力結果:

150

(int) を付けることで、値を整数として扱えます。

(float) で小数に変換する

小数を扱いたい場合は、(float) を使います。

<?php
$a = "10.5";
$b = "2.3";

$result = (float)$a + (float)$b;

echo $result;
?>

出力結果:

12.8

数値として扱えない文字列には注意する

PHPでは、"100" のような文字列は計算できますが、すべての文字列が安全に計算できるわけではありません。

たとえば、次のようなコードには注意が必要です。

<?php
$a = "abc";
$b = 100;

echo $a + $b;
?>

"abc" は数値として解釈できません。

PHP 8系では、数値として解釈できない文字列を算術演算に使うと、エラーになる可能性があります。

また、次のように数値以外の文字を含む文字列も注意が必要です。

<?php
$a = "100円";
$b = 50;

echo $a + $b;
?>

このような値は、意図しない結果や警告の原因になることがあります。

そのため、フォーム入力値や外部から受け取った値を計算するときは、事前に数値かどうかを確認するのが安全です。

文字列連結の . と足し算の + の違い

PHPでは、文字列をつなげるときに . を使います。

<?php
$name = "田中";
$message = "こんにちは、" . $name . "さん";

echo $message;
?>

出力結果:

こんにちは、田中さん

一方、+ は基本的に数値計算に使います。

<?php
$a = 10;
$b = 20;

echo $a + $b;
?>

出力結果:

30

文字列としてつなげたい場合は、+ ではなく . を使います。

<?php
$a = "10";
$b = "20";

echo $a . $b;
?>

出力結果:

1020

この場合、"10""20" が文字列として連結されるため、結果は "1020" になります。

文字列連結に + を使わない

PHPでは、次のような書き方は避けましょう。

<?php
echo "合計は" + 100 + "円です";
?>

PHPでは、文字列連結に + は使いません。

+ は数値計算用の演算子なので、数値として解釈できない文字列を計算しようとして、エラーになる可能性があります。

正しくは、次のように . を使います。

<?php
echo "合計は" . 100 . "円です";
?>

出力結果:

合計は100円です

PHPを学び始めたばかりのころは、JavaScriptなどの感覚で文字列連結に + を使ってしまうことがあります。

しかし、PHPでは文字列連結は . と覚えておきましょう。

フォーム入力値を足し算する例

PHPでは、フォームから送信された値を使って計算する場面がよくあります。

たとえば、次のようなHTMLフォームがあるとします。

<form method="post">
  <input type="number" name="price1">
  <input type="number" name="price2">
  <button type="submit">計算する</button>
</form>

PHP側では、次のように計算できます。

<?php
$price1 = isset($_POST['price1']) ? (int)$_POST['price1'] : 0;
$price2 = isset($_POST['price2']) ? (int)$_POST['price2'] : 0;

$total = $price1 + $price2;

echo "合計金額は " . $total . " 円です。";
?>

このコードでは、$_POST['price1']$_POST['price2'] から送信された値を受け取り、(int) で整数に変換してから足し算しています。

ただし、この書き方は比較的シンプルな例です。

実務では、未入力や不正な値が送られてくる可能性もあるため、より丁寧に入力チェックを行う必要があります。

filter_input() を使って入力値をチェックする

実務では、filter_input() を使って、値が整数として正しいかを確認すると安全です。

<?php
$price1 = filter_input(INPUT_POST, 'price1', FILTER_VALIDATE_INT);
$price2 = filter_input(INPUT_POST, 'price2', FILTER_VALIDATE_INT);

if ($price1 === false || $price1 === null || $price2 === false || $price2 === null) {
    echo "正しい数値を入力してください。";
    exit;
}

$total = $price1 + $price2;

echo "合計金額は " . $total . " 円です。";
?>

このコードでは、price1price2 が整数として正しい値かどうかを確認しています。

不正な値だった場合は、計算せずにエラーメッセージを表示します。

フォーム入力値をそのまま計算に使うと、予期しないエラーや不正な処理につながることがあります。

そのため、ユーザーが入力した値は、必ず検証してから使うことが大切です。

フォーム入力値を引き算する例

引き算も、フォーム入力値を使って行えます。

<?php
$budget = filter_input(INPUT_POST, 'budget', FILTER_VALIDATE_INT);
$cost = filter_input(INPUT_POST, 'cost', FILTER_VALIDATE_INT);

if ($budget === false || $budget === null || $cost === false || $cost === null) {
    echo "正しい数値を入力してください。";
    exit;
}

$remaining = $budget - $cost;

echo "残り予算は " . $remaining . " 円です。";
?>

この例では、予算から使用金額を引いて、残りの予算を表示しています。

$remaining = $budget - $cost;

この部分で引き算が行われています。

税込み価格を計算する例

足し算は、税込価格の計算にもよく使われます。

<?php
$price = 1000;
$tax = 100;

$total = $price + $tax;

echo $total . "円";
?>

出力結果:

1100円

実際には、税率を使って税額を計算することが多いです。

<?php
$price = 1000;
$taxRate = 0.10;

$tax = $price * $taxRate;
$total = $price + $tax;

echo $total . "円";
?>

出力結果:

1100円

小数が発生する場合は、端数処理を行います。

<?php
$price = 980;
$taxRate = 0.10;

$tax = floor($price * $taxRate);
$total = $price + $tax;

echo $total . "円";
?>

この例では、税額を切り捨てています。

端数処理には、主に次の関数があります。

関数内容
floor()小数点以下を切り捨てる
ceil()小数点以下を切り上げる
round()四捨五入する

税込価格を計算する場合は、どの端数処理を使うかを事前に決めておきましょう。

値引き後の価格を計算する例

引き算は、割引や値引きの計算でよく使います。

<?php
$price = 5000;
$discount = 1000;

$salePrice = $price - $discount;

echo $salePrice . "円";
?>

出力結果:

4000円

このコードでは、元の価格 5000 から、値引き額 1000 を引いています。

ECサイトやキャンペーンページでは、次のように送料やクーポンと組み合わせて使うこともあります。

<?php
$productPrice = 5000;
$shippingFee = 600;
$couponDiscount = 1200;

$total = $productPrice + $shippingFee - $couponDiscount;

echo "お支払い金額は " . $total . " 円です。";
?>

出力結果:

お支払い金額は 4400 円です。

在庫数を増減させる例

PHPの足し算・引き算は、在庫管理でもよく使われます。

在庫を追加する場合は、足し算を使います。

<?php
$stock = 10;
$addStock = 5;

$stock += $addStock;

echo $stock;
?>

出力結果:

15

注文が入って在庫を減らす場合は、引き算を使います。

<?php
$stock = 10;
$orderQuantity = 3;

$stock -= $orderQuantity;

echo $stock;
?>

出力結果:

7

このように、+=-= を使うと、現在の値をもとにして増減させる処理を短く書けます。

配列の中の数値を足し算する

複数の金額を配列で管理している場合は、array_sum() を使うと簡単に合計できます。

<?php
$prices = [1200, 800, 500];

$total = array_sum($prices);

echo $total;
?>

出力結果:

2500

通常の足し算で書くと、次のようになります。

$total = $prices[0] + $prices[1] + $prices[2];

しかし、配列の要素が多い場合は、array_sum() を使った方が簡潔です。

ただし、array_sum() を使うときは、配列の中身が数値であることを前提にした方が安全です。

foreach で合計を計算する

foreach を使って、配列の中身を1つずつ足していくこともできます。

<?php
$prices = [1200, 800, 500];

$total = 0;

foreach ($prices as $price) {
    $total += $price;
}

echo $total;
?>

出力結果:

2500

この書き方は、条件付きで合計したい場合に便利です。

たとえば、課税対象の商品だけを合計する場合は、次のように書けます。

<?php
$items = [
    ['name' => '商品A', 'price' => 1200, 'taxable' => true],
    ['name' => '商品B', 'price' => 800, 'taxable' => false],
    ['name' => '商品C', 'price' => 500, 'taxable' => true],
];

$total = 0;

foreach ($items as $item) {
    if ($item['taxable']) {
        $total += $item['price'];
    }
}

echo $total;
?>

出力結果:

1700

この例では、taxabletrue の商品の価格だけを合計しています。

PHPで足し算・引き算するときの注意点

文字列連結には + ではなく . を使う

PHPでは、文字列をつなげる場合は . を使います。

<?php
echo "合計は" . 100 . "円です";
?>

出力結果:

合計は100円です

+ は数値計算に使う演算子です。

<?php
echo 100 + 200;
?>

出力結果:

300

文字列をつなげるときに + を使うと、エラーや意図しない処理の原因になります。

フォーム入力値は検証してから計算する

フォームから送られてくる値は、必ずしも正しい数値とは限りません。

そのため、計算前に値を確認することが大切です。

簡単な例では、(int) を使って整数に変換できます。

$price = (int)$_POST['price'];

ただし、(int) は不正な値を 0 に変換してしまう場合があります。

たとえば、次のようなコードです。

<?php
$price = (int)"abc";

echo $price;
?>

出力結果:

0

そのため、実務では filter_input() などを使って、正しい数値かどうかをチェックする方が安全です。

<?php
$price = filter_input(INPUT_POST, 'price', FILTER_VALIDATE_INT);

if ($price === false || $price === null) {
    echo "正しい数値を入力してください。";
    exit;
}

echo $price + 100;
?>

小数の計算では誤差に注意する

PHPでは小数も計算できますが、小数の計算では誤差が出ることがあります。

そのため、金額計算では、できるだけ整数で扱う設計にすると安全です。

<?php
$price = 1000;
$discount = 150;

$total = $price - $discount;

echo $total . "円";
?>

出力結果:

850円

税金や割引率を使う場合は、端数処理の方法も決めておきましょう。

計算の順番を分かりやすくする

複雑な計算式では、カッコを使うと読みやすくなります。

<?php
$total = ($price + $shippingFee) - $discount;
?>

カッコがなくても計算できる場合がありますが、意図を明確にするためにカッコを使うと、コードを読む人にとって分かりやすくなります。

よく使う書き方まとめ

書き方意味
$a + $b$a$b を足す
$a - $b$a から $b を引く
$a += $b$a = $a + $b と同じ
$a -= $b$a = $a - $b と同じ
$a++$a を1増やす
$a--$a を1減らす
++$a先に1増やしてから使う
--$a先に1減らしてから使う
array_sum($array)配列内の数値を合計する
.文字列を連結する

PHPの足し算・引き算の実務的なサンプル

最後に、商品価格、送料、クーポン割引、税金を組み合わせた実務に近いサンプルを紹介します。

<?php
$productPrice = 5000;
$shippingFee = 600;
$couponDiscount = 1000;
$taxRate = 0.10;

$subtotal = $productPrice + $shippingFee - $couponDiscount;
$tax = floor($subtotal * $taxRate);
$total = $subtotal + $tax;

echo "小計は " . $subtotal . " 円です。";
echo "\n";
echo "消費税は " . $tax . " 円です。";
echo "\n";
echo "お支払い金額は " . $total . " 円です。";
?>

出力結果:

小計は 4600 円です。
消費税は 460 円です。
お支払い金額は 5060 円です。

このように、PHPの足し算・引き算は、単純な計算だけでなく、ECサイトや予約システム、会員サイト、管理画面など、さまざまな場面で使われます。

まとめ

PHPで足し算をするときは +、引き算をするときは - を使います。

$a + $b
$a - $b

現在の変数に値を足したり引いたりする場合は、+=-= を使うと簡潔に書けます。

$count += 1;
$count -= 1;

1だけ増やす場合は ++、1だけ減らす場合は -- も使えます。

$count++;
$count--;

また、PHPでは文字列連結に + ではなく . を使う点に注意しましょう。

echo "合計は" . $total . "円です";

フォームから受け取った値を計算する場合は、数値として正しいかを確認してから使うことが重要です。

$price = filter_input(INPUT_POST, 'price', FILTER_VALIDATE_INT);

PHPの足し算・引き算は基本的な処理ですが、フォーム入力値、文字列、税込計算、小数、端数処理などが関わると注意点も増えます。

まずは、+- の基本を押さえたうえで、+=-=, ++, --、そして文字列連結の . との違いを理解しておくと、PHPでの計算処理を正しく書けるようになります。

以上、PHPでの足し算や引き算についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次