定数

広告

定数とは数値や文字列などの値をプログラムの中でそのまま記述する変わりに、分かりやすい文字列を使って値を定数として定義し、値を直接記述する代わりに定数名を記述する場合に使用します。

$price1 = 100 * (1 + 0.05);
$price2 = 84 * (1 + 0.05);
$price3 = 180 * (1 + 0.05);

上記は商品単価に消費税を加えたものを計算しています。ここで消費税は5%として計算していますが、いずれ変更になるかもしれません。このように数値を直接プログラムの中で記述していると変更があった場合に全て修正が必要となります。

そこで0.05という数値の代わりにTAXという定数を使って書き換えてみます。

define("TAX", 0.05);

$price1 = 100 * (1 + TAX);
$price2 = 84 * (1 + TAX);
$price3 = 180 * (1 + TAX);

今度の場合、消費税率が変更になっても定数「TAX」の定義箇所だけを変更するだけで済みます。このように定数は一度定義すればプログラム内では変更されないような値に対して識別子を割り当てるために使われます。

定数の定義は次のように行います。

define(識別子, 値);

識別子には文字列で定数の名前を指定します。定数名として使用可能な文字列は変数と同じで先頭がアンダーバーかアルファベットで始まり、その後にアンダーバー、数字、アルファベットが続くものです。大文字と小文字は区別して扱われますが慣習的に定数名は全て大文字を使います。変数名とは異なり先頭に「$」は必要ありません。

値として指定できるのは文字列、数値、論理値のいずれかです。具体的には次のように記述します。

define("TAX", 0.05);
define("PAI", 3.14159);
define("COPYRIGHT", "Copyright (C) 2008 XXX. All Rights Reserved.");

定数は一度定義するとプログラムの中で変更することは出来ません。定義された定数は値の代わりとしてプログラムの中で識別子を記述して使います。

define("PAI", 3.14159);

$menseki = PAI * $hankei * $hankei;

サンプルプログラム

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

sample7-1.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>PHPテスト</title>
</head>
<body>

<p>PHPのテストです。</p>

<p>
<?php
define("PAI", 3.14159);

$r = 7;
$menseki = PAI * $r * $r;
print '半径='.$r.'の面積は'.$menseki.'<br />';

$r = 14;
$menseki = PAI * $r * $r;
print '半径='.$r.'の面積は'.$menseki;
?>
</p>

</body>
</html>

上記のファイルをWWWサーバのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。

定数

( Written by Tatsuo Ikura )