変数と演算

トップ > PHP入門 > 変数と演算

目次

広告

変数について

変数とは、一時的に値を保存しておくための箱のような物です。例えば

$sample = 10;

と書くと、sample という名前の変数の中に 10 という値が保存(代入)されます。PHP での =「等しい」ではなく「代入」という意味ですので注意してください。
= の前後に半角スペースを入れていますが、文法的な意味はありません。文字が詰まっていると読みにくいので、可読性をあげるために入れているだけです。なので、スペースを空けずに書いても問題はありません。

変数には数字だけでなく、文字列を保存することもできます。例えば

$sample = "変数のテスト";

と書くと、sample という名前の変数の中に 変数のテスト という値が保存(代入)されます。保存する値が文字列の場合、echo 命令の時と同様 "' で囲んで指定します。
変数への代入は、以下のように「箱の中に値を入れる」イメージです。

変数について

変数の名前

PHPでは変数の名前は $ で始まる文字列で指定します。ただし、変数名の先頭に数字を使用することはできません。例を挙げると、$name$address_2 は正しい変数ですが、$123 は間違った変数の指定です。

また、PHPでは変数の名前に日本語を使用することができます。つまり $名前 のような変数を扱うことができます。ただし、変数名に日本語を使用するとプログラムが読みにくくなるため、あまりお勧めはできません。

ルールに沿っていれば自由に名前を付けることができますが、できるだけ「どういう値が格納されるか?」を考えて名前を付けた方が、後でプログラムを読み返したときに理解しやすくなります。具体例を挙げると、$hensuu1$aaa のような名前でも動作しますが、価格を格納する変数を $price にしたり、電話番号を格納する変数を $tel にしたり…とすると、何のための変数なのか一目瞭然になります。

変数を使用したプログラム

以下に、変数を使用したプログラムを記載します。(今回から html タグや head タグなどを省略して、プログラム部分のみ記載します。)

<?php

$sample = 10;

echo "変数sampleの内容は$sample です。";

?>

echo "変数sampleの内容は$sample の直後には、半角スペースがあるので注意してください。

これを実行すると、ブラウザに 変数sampleの内容は10 です。 と表示されます。$sample = 10; で変数 sample10 を代入し、echo "変数sampleの内容は$sample です。"; でその内容を表示させています。このように、echo 文の " 内に変数名を書くと、その内容が表示されます。また

<?php

$sample = "変数のテスト";

echo "変数sampleの内容は$sample です。";

?>

これを実行すると、ブラウザに 変数sampleの内容は変数のテストです。 と表示されます。$sample = "変数のテスト"; で変数 sample変数のテスト を代入し、echo "変数sampleの内容は$sample です。\n"; でその内容を表示させています。

なお、変数の内容を表示する際、変数の直後に文字があると「どこまでが変数名なのか?」を判断できなくなるため、正しく表示する事ができません。その場合、上のサンプルのように半角スペースを入れておくか、{$sample} もしくは ${sample} と書く事で正しく表示することができます。(変数名を {} で囲います。)

<?php

$sample = "変数のテスト";

echo "変数sampleの内容は{$sample}です。";

?>

半角スペースがあると表示結果でもスペースが空くので、基本的には {} で囲う方がいいでしょう。

また、変数の内容が展開されるのは、文字列を " で囲った場合のみです。' で囲っても変数の内容は展開されず、そのまま表示されます。つまり

<?php

$sample = "変数のテスト";

echo '変数sampleの内容は{$sample}です。';

?>

このように書くと、画面には 変数sampleの内容は{$sample}です。 と表示されます。

演算について

変数には計算結果を代入することもできます。また、変数同士の計算を行うこともできます。(演算とは計算のことです。)例えば

<?php

$sample = 3 + 2;

echo "変数sampleの内容は{$sample}です。";

?>

これを実行すると、ブラウザに 変数sampleの内容は5です。 と表示されます。$sample には3+2の計算結果が代入されます。

計算は加算だけでなく、普通に四則計算ができます。以下に例を挙げます。

<?php

$answer_1 = 3 + 2;
$answer_2 = 5 - 3;
$answer_3 = 2 * 3;
$answer_4 = 6 / 2;
$answer_5 = 5 % 2;

echo "3 + 2 ... $answer_1<br />\n";
echo "5 - 3 ... $answer_2<br />\n";
echo "2 * 3 ... $answer_3<br />\n";
echo "6 / 2 ... $answer_4<br />\n";
echo "5 % 2 ... $answer_5<br />\n";

?>

これを実行すると、ブラウザに以下のように表示されます。

3 + 2 ... 5
5 - 3 ... 2
2 * 3 ... 6
6 / 2 ... 3
5 % 2 ... 1

+- は、それぞれ加算・減算を行う演算子です。これは数学と同じです。
* は掛け算を表します。また、/ は割り算を表します。
% は余りを求めます。上の場合、5÷2の計算結果の余りが $answer_5 に代入されます。

これらの +* のことを演算子と呼びます。演算子にはもっと沢山の種類がありますが、ひとまずはこれだけ知っていればいいでしょう。

演算の優先準備

計算の優先順位は、基本的に普通の数学と同じです。例えば

<?php

$sample = 3 + 2 * 5;

echo "変数sampleの内容は{$sample}です。";

?>

このプログラムを実行すると、計算結果は 13 になります。掛け算と割り算は足し算と引き算よりも優先順位が高いため、先に計算が行われます。
先に足し算をしたい場合、カッコを使って優先順位を指定することができます。

<?php

$sample = (3 + 2) * 5;

echo "変数sampleの内容は{$sample}です。";

?>

この場合、計算結果は 25 になります。

文字列の演算

演算は数値だけでなく、文字列に対しても行うことができます。

<?php

$sample = "テスト" . "サンプル";

echo "変数sampleの内容は{$sample}です。";

?>

これを実行すると、ブラウザに 変数answerの内容はテストサンプルです。 と表示されます。. は文字列を連結する演算子です。ですからこの場合、テストサンプル を連結したものが $sample に代入されます。

なお、+ で文字の連結はできないので注意してください。+ を使うと強制的に数値の演算として解釈されるため、意図した結果が得られません。

変数同士の演算

演算は変数同士で行うこともできます。例えば

<?php

$number_1 = 3;
$number_2 = 2;

$answer = $number_1 + $number_2;

echo "変数answerの内容は{$answer}です。";

?>

これを実行すると、ブラウザに 変数answerの内容は5です。 と表示されます。$number_1$number_2 にはそれぞれ 32 が代入されるので、その計算結果が $answer に代入されます。

インクリメント演算子、デクリメント演算子

$sample1 を加える場合、以下のように書きます。

$sample = $sample + 1;

これで問題は無いのですが、プログラムでは「1加える」という処理はよく利用されるため、省略して以下のように書くことができるようになっています。

$sample++;

これでも「$sample に1を加える」という意味になります。++ はインクリメント演算子と呼ばれ、変数に 1 加えることができます。また、同様に

$sample--;

このようにすれば「$sample から1を引く」という意味になります。-- はデクリメント演算子と呼ばれ、変数から 1 減らすことができます。