変数と配列①
PHPで扱ってきた変数についてもう少し詳しく見ていきましょう。
■単純変数とは
今まで扱ってきた変数について以下のように説明してきました。
変数とは、一言で言うと「データの入れておく箱」です。
データ処理の途中経過のデータを一時的に保管しておく役割を果たしています。
(参考:変数と演算子①)
以下のように整数や小数、文字列やtrue,falseといった論理型のような様々なデータを保存しておくことができました。
$a = 10; // 整数のデータを保存 $b = 3.14; // 少数のデータを保存 $c = 'ABCabcあいう漢字'; // 文字列のデータを保存 $d = true; // true(真)のデータを保存(文字列とは異なるので注意)
このように変数は「1つにつき1つのデータを保管するもの」として扱ってきました。
このような変数を単純変数(スカラー型変数)と呼びます。
ですので、上記の例で扱ってきた変数は全て単純変数に分類されます。
■単純変数以外の変数について
単純変数は「1つにつき1つのデータを保管するもの」として便利なものですが、
以下のような場合について考えてみましょう。
// // 例)10人分の名前のデータを変数に保存する // $name01 = '山田'; // 1人目の名前のデータを保存 $name02 = '鈴木'; // 2人目の名前のデータを保存 $name03 = '高橋'; // 3人目の名前のデータを保存 // ...(4行省略) $name08 = '田中'; // 8人目の名前のデータを保存 $name09 = '伊藤'; // 9人目の名前のデータを保存 $name10 = '渡辺'; // 10人目の名前のデータを保存
このように単純変数では
10人分の名前のデータを保存するためには、
10個の変数を用意しデータを代入します。
今回は10人分の名前のデータなので10行で済みましたが、
もしこれが100人分、1000人分の名前のデータを扱う場合、
更に100人分、1000人分の年齢のデータも扱うとなった場合のことを考えると…
// // 例)1000人分の名前と年齢のデータを変数に保存する // $name0001 = '山田'; // 1人目の名前のデータを保存 $name0002 = '鈴木'; // 2人目の名前のデータを保存 $name0003 = '高橋'; // 3人目の名前のデータを保存 // ...(996行省略) $name0998 = '田中'; // 998人目の名前のデータを保存 $name0999 = '伊藤'; // 999人目の名前のデータを保存 $name1000 = '渡辺'; // 1000人目の名前のデータを保存 $age0001 = 20; // 1人目の年齢のデータを保存 $age0001 = 30; // 2人目の年齢のデータを保存 $age0001 = 40; // 3人目の年齢のデータを保存 // ...(996行省略) $age0001 = 50; // 998人目の年齢のデータを保存 $age0001 = 60; // 999人目の年齢のデータを保存 $age0001 = 70; // 1000人目の年齢のデータを保存
1000人分の名前と年齢のデータを保存するためには
計2000個の変数を用意して保存するしかありません。
このように単純変数では
1つの変数につき1つのデータしか保存することができないため
たとえ名前と年齢など関連するデータであっても、
保存したいデータの数だけ変数を用意する必要がでてしまいます。
今までは単純変数を扱ってきましたが、
変数には単純変数の他に複合型変数というものがあり
今回のようなたくさんのデータを扱う場合でも
単純変数ではなく複合型変数の配列というものを使えば
もっと簡単に多くのデータを扱うことができるようになります。
配列についてはこちらの記事で解説します。