PHP

第2章 変数と定数

  1. 最終更新日:
  2. 公開日:

この章では、プログラミングを行ううえで必ず使う「変数」と「定数」の扱い方を学んでいきます。

変数

変数は簡単に言うと「コンピューターが一時的に記憶するための『箱』」です。
イメージしやすいように、ここではECサイトの運営をしていることとして、取り扱う商品を変数に例えてみます。
お客様が図1のようなジーンズ(¥7,980)、Tシャツ(¥2,980)、パーカー(¥4,400)の3点を購入しようとしています。

図1

購入しようとしている商品

ここで、お客様に合計金額、税額、配送料を含めた合計金額を表示させたいとしましょう。
コードにすると、以下のようになります。

code2-1.php

<?php
// まずは合計金額を求めます
echo '<p>合計金額:¥'.(7980 + 2980 + 4400).'</p>';

// 次に税込金額を求めます
echo '<p>税込金額:¥'.(7980 + 2980 + 4400) * 1.08.'</p>';

// 最後に配送料(¥500)を含めた最終金額を求めます
echo '<p>配送料(¥500)を含めた金額:¥'.((7980 + 2980 + 4400) * 1.08 + 500).'</p>';

実行すると、出力結果は以下のようになります。

出力結果

合計金額:¥15360

税込金額:¥16588.8

配送料(¥500)を含めた金額:¥17088.8

これで、表示させたい全ての金額をお客様が確認できるようになりました。
コードを理解するために分解してみましょう。

まず、コード中の「// まずは合計金額を求めます」や「// 次に税込金額を求めます」といったメッセージがありますが、これは「コメント」と言って、コードの中に書くことができるメモです。
//」を書くと、その行の「//」以降はコメントとして扱われます。
コメントの部分はプログラムからは無視されるため処理には影響しません。なので、コードがどのような処理を行っているかを一言書いておきたい場合に便意です。

次はecho関数をみてみます。この関数は、右側に書いた変数やテキストをブラウザなどに出力する際に使用します。3行目では、'<p>合計金額:¥'.(7980 + 2980 + 4400).'</p>'を出力するためにecho関数を呼び出しています。

さらに進んで、上記のコード'<p>合計金額:¥'.(7980 + 2980 + 4400).'</p>'を分解して見ていきましょう。
この式は、'<p>合計金額:¥'(7980 + 2980 + 4400)'</p>'の3つに分けることができます。
これらを.で繋げて出力しています。この.を「結合演算子」と言います。動作は名前のままに、前後のものを連結します。

1つ目と3つ目の「'」で囲んだものはテキストです。そのまま出力します。
2つ目の(7980 + 2980 + 4400)は数値の計算です。図1にある3点の商品の金額を合計しています。合計金額が出たら、結合演算子で前後のテキストと繋げて、「合計金額:¥15360」と出力されるようになっています。

6行目と9行目も同じようにして、税込金額や配送料を含めた金額を表示するコードになっています。

上記のコードで3つの金額は出力できましたが、(7980 + 2980 + 4400)の商品金額を合計するコードが3回も書いてあって、ちょっと効率の悪い感じがしますね。
そこで変数の出番です。先ほどの「code2-1.php」を開いて、下記のように修正し、実行してみてください。

は追加したコード、オレンジは修正したコードです。

code2-1.php

<?php
// 商品の合計金額を計算
$sum = 7980 + 2980 + 4400;

// まずは合計金額を求めます
echo '<p>合計金額:¥' . $sum . '</p>';

// 次に税込金額を求めます
echo '<p>税込金額:¥' . $sum * 1.08 . '</p>';

// 最後に配送料(¥500)を含めた最終金額を求めます
echo '<p>配送料(¥500)を含めた金額:¥' . ($sum * 1.08 +  500) . '</p>';

出力される結果は修正前と同じですが、式がスッキリしましたね!
変数へ計算した結果を入れることで、同じ計算を何度も行わずに済ませることができます。
これでコンピューターも少し楽ができました。

変数は上記のような整数の他にも、浮動小数やテキストを入れることができます。

code2-2.php

<?php
// 浮動小数
$double = 1.0655;

// テキスト
$text = "テキストを入れることもできます。";

// 出力
echo $double;
echo $text;

このように浮動小数やテキストを入れたり、計算結果の数値を入れたりすることをプログラミングでは「代入」と言います。
code2-1.php」だと、「商品の合計金額を$sumへ代入する」と言うことができます。
そして、変数は一度入れて終わりではありません。何度でも新しい値を代入して上書きすることができます。

今回のように計算結果の数値を変数で記憶しておくと、なにかと便利です。
今後も変数はどんどん使っていくので、少しずつ慣れていきましょう。

定数

値を何度も代入できる変数とは別に、1度値を代入したら変更することのできない「定数」というものがあります。
定数はdefine関数を使って、以下のように宣言します。

code2-3.php

<?php
// 定数の宣言
define("NAME","Jack");

// 値の取り出し方は変数と同じ
echo NAME;

define関数内にある1つ目の「NAME」は定数名を指定し、2つ目の「Jack」は値を指定しています。

変数と同じように定数に別の値を代入しようとすると、エラーが表示されてしまうので注意してください。
そのような性質を持っているので、URLやディレクトリのパスなど、後から絶対に上書きされたくないシステム設定に関する値を入れたりして使用することが多いです。

先ほどのECサイトの続きで定数を使ってみましょう。
「消費税」と「配送料」は固定なので、ここを定数にしてみます。

code2-1.php(修正)

<?php
// 消費税
define( "TAX", 1.08);

// 配送料
define( "TRANSPORT", 500);

// 商品の合計金額を計算
$sum = 7980 + 2980 + 4400;

// まずは合計金額を求めます
echo '<p>合計金額:¥' . $sum . '</p>';

// 次に税込金額を求めます
echo '<p>税込金額:¥' . $sum * TAX . '</p>';

// 最後に配送料(¥500)を含めた最終金額を求めます
echo '<p>配送料(¥500)を含めた金額:¥' . ($sum * TAX + TRANSPORT) . '</p>';

出力される内容はまたまた変わりませんが、コードはさらにシンプルになりました!
これでもし消費税が10%へと変更があっても、定数「TAX」の値を「1.08(8%)」から「1.1(10%)」へと変更するだけで、プログラム全体に変更を反映することができます。(増税のことはあまり考えたくありませんが...)

まとめ

変数と定数の使い方を学んできました。コードの書き方はイメージできたでしょうか。
この後もガンガン使っていくので、今はイマイチだったとしても少しずつ慣れていくはずです。気にせず進んでください。

この章で学んだこと

  • 「変数」は整数、浮動小数、テキストなど値を自由に入れることができる
  • 「変数」に計算結果を入れておくことで、同じ計算処理を何回も書かなくて済む
  • 「変数」は何度でも新しい値を上書きすることができる
  • 「定数」はdefine関数で宣言することができる
  • 「定数」は一度設定した値を変更することができない

記事一覧

  1. 第1章 PHPが動く仕組み
  2. 第2章 変数と定数
  3. 第3章 配列
  4. 第4章 スーパーグローバル
  5. 第5章 クッキーとセッション
  6. 第6章 サーバー情報の取得
  7. 第7章 if文
  8. 第8章 switch文
  9. 第9章 while文
  10. 第10章 for文
  11. 第11章 foreach文
  12. 第12章 独自の関数
  13. 第13章 オブジェクト指向
  14. 第14章 クラス
  15. 第15章 オブジェクト

記事一覧