変数

3 9月 2008

変数とは、変わった数ではありません。

変わることのできる数という意味になるのですが・・・

数=値と考えたほうが、わかりやすいかも知れませんが・・・

コンピュータは計算機なので、何をするにも計算します。だから取り扱う情報もすべて数値です。『あいうえお』という文字も、コンピュータの中では数値で表現されています。

 

変数が、算数や数学のときと同じ変化する値をいれているといっても、正直、ピンとこないのは、普通ですよね。

この変数の必用性は、実はコンピュータという大きな計算機の仕組みに関係しています。
コンピュータは、一度に一つの仕事しかする事ができません。
プログラミングされた命令を、ひとつひとつ仕事として計算して終らせていきます。

コンピュータに、簡単な計算をさせることを考えてみましょう。

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.”です。”
というように、文字連結方法を使うほうが安心です。