変数とは、変わった数ではありません。
変わることのできる数という意味になるのですが・・・
数=値と考えたほうが、わかりやすいかも知れませんが・・・
コンピュータは計算機なので、何をするにも計算します。だから取り扱う情報もすべて数値です。『あいうえお』という文字も、コンピュータの中では数値で表現されています。
変数が、算数や数学のときと同じ変化する値をいれているといっても、正直、ピンとこないのは、普通ですよね。
この変数の必用性は、実はコンピュータという大きな計算機の仕組みに関係しています。
コンピュータは、一度に一つの仕事しかする事ができません。
プログラミングされた命令を、ひとつひとつ仕事として計算して終らせていきます。
コンピュータに、簡単な計算をさせることを考えてみましょう。
a. 1+2の計算
b. 5+3の計算
c. aで行った計算に4を加算
aの1+2の計算結果は3ですね。bの計算結果は8です。
cで計算しようとした時、aの計算結果はどこにあるのでしょうか?
コンピュータは、1つの命令を終らせてから次の命令を実行します。
コンピュータにとっては、bの命令を実行するときには、aの計算の結果はすでに仕事が終ってしまっているので、最後のbの計算の結果しか利用することが出来ません。
コンピュータには、メモリと呼ばれる記憶装置があります。
ずらりと並べられたロッカーのような構造をしています。
順番に番号がつけられていて場所を探すことができるのです。
しかし、この番号はコンピュータが仕事を使うときに、ここがいいかなぁ?と、自在に(勝手に)どこの番号を使うかを決めてしまいます。
5番のロッカーを使うかもと、予想しても、コンピュータは7番にしてしまうかも知れません。
それでは、プログラミングする時に(PHPで書くときに)、番号を想定して、命令を書くことはできません。
そこで、変数という考え方が登場してきます。
ロッカーに入れるときにロッカーに名前をつけるように、コンピュータに命令しておくのです。
そうすれば、名前で探しだすことが出来るようになります。この名前をつけてメモリに情報を保存する方法を、「変数」といいます。 変数とは、値を一時的に保持しておくためのものなのです。 このつける名前を「変数名」といいます。
プログラミングする場合には、先に変数を用意してメモリに場所を確保しておき、変数を変数名で指定して値を出し入れして利用します。
そして、
ロッカーがいっぱいになってしまったら、困りますね。
ロッカーは永久的に使えるものでなく、期限があります。
それが、リクエストで受け取った情報を利用できるまでと、変数を宣言して、利用できるまでの有効範囲という考え方になります
●命名規則
・$ではじまる
・使用できる文字は半角英数、_ アンダーバー
※全角も使うことができますが、一般的な利用ではありません。
・1文字目は数字はダメ
・大文字、小文字は区別される
※変数名の小文字にしましょう。(慣習)
●4種類のスカラー型:
論理値・・・・・・・・・・・・・・・・・・true(0以外) または false(0 空)
boolean 条件を判定する時に利用
整数 ・・・・・・・・・・・・・・・・・・・123
integer +-有りの小数点以下のない数値
浮動小数点数・・・・・・・・・・・・1.5
float またはdouble
+-有りの小数点以下のある数値
文字列・・・・・・・・・・・・・・・・・・”あいうえお” ‘あいうえお’
“ ダブルコーテーション で囲んだ場合、変数の中身も表示できます。
‘ シングルコーテーション で囲むと、変数名が表示されます。
PHPやコンピュータで利用される制御文字(改行や引用符など)は
エスケープシーケンスにより、\で通常の文字として取り扱うことができます。
※エスケープシーケンスは、’ シングルコーテーション と” ダブルコーテーションでは
利用できるものが異なります。気になる人はテキストでチェックしましょう。P75
●変数をグループ管理
配列・・・・
変数は1つだけの箱というイメージだとすると
配列は、棚やタンスのように重ねた箱を一まとめにしたイメージです。
0から順番に番号がつき、配列名 番号で1つ1つの値を利用できます。
またダンボールのようなイメージで、名前の札をつけてしまえる配列(連想配列)があります。
●可変変数
動的な変数の設定を行う方法で
$a=’b';
$b=’c';
と用意されている時
$$a の扱うのは
$$a → ${$a} →${‘b’} → $b → ‘c’
です。
※可変変数は、難度が高くなります。
普通の変数や配列を使いこなすことを、まず目標にしましょう。
●変数の困った話
変数に日本語文字列を入れ、” ダブルコーテーションで囲んだ場合に、文字化けが起きることがあります。
文字化け問題は、症状と原因、対応方法はさまざまあるのですが、この日本語を変数にいれて”で囲んだ場合に文字化けする原因は、「PHPが保障しない」という
なんとも、説明しにくい話しです。
ご説明しておくと
PHPが変数を宣言してから使うことを約束としていないため
$name=”あ”;
”$nameです。” と書くと、『です。』までもつけた変数名として解釈してしまう場合がある。
なので、
日本語を変数にいれて利用する場合には $name.”です。”
というように、文字連結方法を使うほうが安心です。