変数
変数とは何でしょう?プログラミング関連書籍などでは、ほぼ間違いなく、次のように説明されています。
"変数とは、データを格納する入れ物(箱)のようなものである"
つまり、プログラミングを行うことを言葉で説明するのは難しいということです。百聞は一見にしかず。次の例は、PHPで変数を利用した例です。
valiables_example.php
1 <?php
2 /**
3 * 変数を利用した例
4 *
5 * 何らかの文字列を出力します
6 */
7
8 // 変数に値を代入
9 $word = "Hello World\n";
10
11 // 文字列を出力
12 echo $word;
valiables_example.phpの実行結果
Hello World
valiables_exaple.phpの解説
ここまでの説明で出てこなかったのは、『$word』と『=』ですね。
9行目:$word = "Hello World!\n";
この9行目を結論から言ってしまうと、"文字列である『Hello World!\n』を変数の『$word』に『=を用いて代入』しています"となるでしょうか。
やはり、言葉で説明するのは難しいですね。『Hello World!\n』の部分を好きな文字列(例えば『Hi! World!\n』といった風)に変えて、再度実行してみてください。echoの部分をいじっていないのに、出力結果が変わります。
$wordというのが、ここで言う変数です。気持ちを落ち着かせてから、次の説明を読み、考えてみてください。
"変数とは、データを格納する入れ物(箱)のようなものである"
"文字列である『Hello World!\n』を変数の『$word』に『=を用いて代入』しています"
9行目で何をしているのか(何となくでも)分かってもらえたでしょうか?分からない場合は、再度、文字列(『Hello World!\n』の部分)を書替えて実行し、説明を読んでみてください。
10回やってみたけど、まるで分からなかったというひとは、残念ながらプログラミングに向いていないかもしれません。しかし、がっかりしないでください。100回くらいやれば理解できるか、あきらめもつくでしょう。尚、1回も試さずに分からないというひとは、全くプログラミングには向いていません。
12行目:echo $word;
変数:$wordの内容を出力しています。これまで文字列を出力してきたように、変数を『""』で囲む必要はありません。
代入演算子『=』
『=』は代入演算子と呼ばれます。算数の考えかたでは、『=』は左辺と右辺が等しいこと(イコール)を意味しますが、PHPをはじめ、多くのプログラミング言語においては、左辺に右辺の値(文字列であっても値といいます)を代入することを意味します。
変数の命名規則
変数の名称は、いくつかの規則を守りさえすれば自由に付けることができます。その規則とは、次のようなものです。
- 接頭語(プリフィックス)に『$』を付ける
- 使用可能文字は英数字および、『_』(アンダーバー)
- 最初の文字($の直後)に数字は使用できない
- $thisという変数名は使用できない
尚、大文字と小文字は区別されます。
もうひとつ、規則ではありませんが、以下の心得というべきものを加えておくことをお勧めします。
- *定義済みの変数名は使用しない
- 変数名は多少長くなっても、分かりやすい名称にする
- 変数にどのようなデータを代入するのかコメントを記述する
*PHPには、既に定義されている変数があります。例えば、それらには、PHPが動作しているサーバのIPアドレスといった既知の値が代入されています。これらの変数は上書きすることができますが、混乱するので止めてください。定義済み変数は、
PHPまとめ
定義済み変数にまとめてあります。
以下、変数の命名例です。
valiables_name.php
<?php
/**
* 変数の命名例
*
* プログラム例として人物名を表示します
*/
// スペース文字を定義
// ファーストネームとラストネームの区切りとして使用
$string_space = ' '; // 『'』と『'』の間にはスペースが入っています
// 改行文字を定義
$string_return = "\n"; // 改行文字は『"』で囲みます
// ファーストネームを定義
$first_name = 'Herbie'; // この値を適宜変更すると表示が変わる
// ラストネームを定義
$last_name = 'Hancock'; // この値を適宜変更すると表示が変わる
// ファーストネームを表示
echo 'First name: ' . $first_name . $string_return;
// ラストネームを表示
echo 'Last name: ' . $last_name . $string_return;
// フルネームで出力
echo 'Full name: ' . $first_name . $string_space . $last_name . $string_return;
// ファーストネームとラストネームの区切りを『_』に変更
$string_space = '_';
// フルネームで出力
echo 'Full name: ' . $first_name . $string_space . $last_name . $string_return;
/*
* その他の例
*/
// 先頭は『_』でもOK
$_string_space = ' ';
// 『_』が複数あってもOK
$__string_return = "\n";
// 大文字と小文字は区別されます
$Last_Name = 'Mason';
// ラストネームを表示($last_name)
echo 'Last name: ' . $last_name . $string_return;
// ラストネームを表示($Last_Name)
echo 'Last name: ' . $Last_Name . $string_return;
// 数字も使用できます
$string_1_to_9 = '123456789';
// $の直後に数字は使用できません
// エラーとなります
/*
$1to9 = '123456789';
*/
valiables_name.phpの実行結果
First name: Herbie
Last name: Hancock
Full name: Herbie Hancock
Full name: Herbie_Hancock
Last name: Hancock
Last name: Mason
変数の上書き
一度定義した変数の値を変えて、もう一度定義することで、変数の値を置き換えることができます。プログラムを作成していく上で、変数の値を変えることができるというのはかなり重要な要素になっていると思います。
変数と言うその名のとおり、定義したものを変更することができるのでしょう。ちなみに、(後で説明しますが)変更できないものは『定数』といいます。
以下は、変数の上書き例です。
valiables_reassign.php
<?php
/**
* 変数の上書き例
*
* プログラム例として人物名を表示します
*/
// スペース文字を定義
$string_space = ' ';
// 改行文字を定義
$string_return = "\n";
// ファーストネームを定義
$first_name = 'Herbie';
// ラストネームを定義
$last_name = 'Hancock';
// フルネームで出力
echo 'Full name: ' . $first_name . $string_space . $last_name . $string_return;
// ラストネームを定義
$last_name = 'Mason'; // $last_nameの値を上書きしている
// フルネームで出力
echo 'Full name: ' . $first_name . $string_space . $last_name . $string_return;
// ラストネームを定義
$last_name = 'Man'; // $last_nameの値を上書きしている
// フルネームで出力
echo 'Full name: ' . $first_name . $string_space . $last_name . $string_return;
valiables_reassign.phpの実行結果
Full name: Herbie Hancock
Full name: Herbie Mason
Full name: Herbie Man