フリー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;
で変数 sample
に 10
を代入し、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
にはそれぞれ 3
と 2
が代入されるので、その計算結果が $answer
に代入されます。
$sample
に 1
を加える場合、以下のように書きます。
$sample = $sample + 1;
これで問題は無いのですが、プログラムでは「1加える」という処理はよく利用されるため、省略して以下のように書くことができるようになっています。
$sample++;
これでも「$sample
に1を加える」という意味になります。++
はインクリメント演算子と呼ばれ、変数に 1
加えることができます。また、同様に
$sample--;
このようにすれば「$sample
から1を引く」という意味になります。--
はデクリメント演算子と呼ばれ、変数から 1
減らすことができます。