PHP講座入門

変数と値 その2

整数型

 これはとても理解しやすいでしょう。25などです。

 負の数も存在します。-20とか-3などですね。

 2進数、8進数、16進数といった形式も使えるんですが、それも出てきたときに説明したいと思います。また、最大・最小も決まっていますが、それも必要な時に説明します。興味のある方は、 PHPマニュアルで見てみることをお勧めします。

 

浮動小数点型

 こちらは少数を含む数ですね。

 1.234とか、-4.56などがそれにあたります。

 1.2e37E-10といった表記方法もありますが、初心者で必要な方はいらっしゃらないと思います。

 

文字列型

 その名の通り、文字を表します。

echo $_GET['name'] . "さん、こんにちは!";

 このようなコードがあった時、'name'"さん、こんにちは!" が文字列になります。' シングルコーテーション か " ダブルコーテーションで囲んだ部分が文字列になります。

 このシングルコーテーションとダブルコーテーションの文字列の違いは何でしょうか?

 これは、ダブルコーテーションの場合、文字列の中に変数やエスケープシーケンスを書くとそれを展開してくれるという利点があります。

 エスケープシーケンスとは

Wikipediaより
エスケープシーケンス (escape sequence) とは、コンピュータシステムにおいて、通常の文字列では表せない特殊な文字や機能を、規定された特別な文字の並びにより表したもの。

 のことです。有名なのは改行(¥n)とかタブ(¥t)とかでしょうか。

 

 では実際、ダブルコーテーションで囲んだ文字列はどうなるのか見てみましょう。下のコードを見てみてください。

<?php
header("Content-type: text/plain"); // この行はテキストを出力するという宣言です。

$name = '鈴木一郎';
echo "$name さん、こんにちは!\n今日はいい天気ですね。";

 出力結果は

鈴木一郎 さん、こんにちは!
今日はいい天気ですね。

 となります。4行目の$nameという変数と¥nというエスケープシーケンスが展開されています。

 これがシングルコーテーションだとどうでしょうか?

<?php
header("Content-type: text/plain"); // この行はテキストを出力するという宣言です。

$name = '鈴木一郎';
echo '$name さん、こんにちは!\n今日はいい天気ですね。'; // シングルコーテーションに変更

 出力結果は

$name さん、こんにちは!\n今日はいい天気ですね。

 となります。このように、打ち込んだまま出力されています。

 どうでしょうか?この違いが理解できたでしょうか?

 その他にもヒアドキュメント構文とnowdoc構文というのがありますが、これは追々説明します

論理値型

 これは別名、真偽値型とも言われます。このことから分かるように、真(true)偽(false)という二つの状態しかありません。

 構文上、TRUEFALSEと書き表すことができます。大文字小文字問わないので、TurEとかFALseとか書くことができますが見にくいのでやめましょう。大抵は、TRUE True trueFALSE False falseのように書きますね。好みの問題です。

 実体として数字のような定数と捉えることができます。

 

 さて、これはどのように使うのでしょうか。

 この問題に答えてみてください。地球は丸いですか? 答えはTRUEですね。太陽は青いですか? 答えはFALSEです。

 このように真偽(正しいか否か)を表すことになります。これがどのように使われるかは、すぐ分かるようになります。

 

配列型

 例えで考えてみましょう。

図7

 皆さんが10棟の賃貸住宅を経営をしているとしましょう。それを管理する時、どのようにしますか? 番号や記号を付けるんじゃないでしょうか?

 4-2 変数と値のところで、変数を学びました。これがです。

 $homeという名前を付けましょう。それを番号で管理します。

 $home[0]が0号室です。$home[1]が1号室です。こんな風に9号室まで名前を付けます。(なぜ最初が1じゃないんでしょうか?配列は何も指定しないと0から始まるんです

図8

 このように、同じ名前で複数の内容を入れられるものを配列と言います。

 では、この家の入居者を変数に入れることにしましょう。

$home[0] = '佐藤';
$home[1] = '鈴木';
$home[2] = '田中';
$home[3] = '高橋';
$home[4] = '鈴木';
$home[5] = '佐藤';
$home[6] = '斉藤';
$home[7] = '田中';
$home[8] = '高橋';
$home[9] = '鈴木';

 それぞれの家の入居者を代入することができました。ただ、まだ配列型の値は出てきていません。

 このコードはこのように書き換えることができます。 (PHPの文は途中に改行やスペース、タブを入れることができます)

$home = array('佐藤', '鈴木', '田中', '高橋', '鈴木', '佐藤',
	'斉藤', '田中', '高橋', '鈴木');
 または、
$home = ['佐藤', '鈴木', '田中', '高橋', '鈴木', '佐藤',
	'斉藤', '田中', '高橋', '鈴木'];
 と書くことができます。このarray('佐藤', '鈴木', '田中', '高橋', '鈴木', '佐藤', '鈴木', '田中', '高橋', '鈴木') または ['佐藤', '鈴木', '田中', '高橋', '鈴木', '佐藤', '鈴木', '田中', '高橋', '鈴木']の部分が配列型の値ということになります。

 

 こんな番号順は嫌だ!という人もいるでしょう。では、部屋に名前を付けましょう。

$home = ['A' => '佐藤', 'B' => '鈴木', 'C' => '田中', 'D' => '高橋', 'E' => '鈴木',
	'E' => '佐藤', 'G' => '斉藤', 'H' => '田中', 'I' => '高橋', 'J' => '鈴木'];
 ちょっと見づらいので整形します。
$home = [
	'A' => '佐藤', 'B' => '鈴木', 'C' => '田中', 'D' => '高橋', 'E' => '鈴木',
	'E' => '佐藤', 'G' => '斉藤', 'H' => '田中', 'I' => '高橋', 'J' => '鈴木'
];
 A号棟の方は佐藤さん、H号棟の方は田中さん、などと分かりやすいですね。

 これを連想配列と言います。

 PHPでは配列と連想配列の明確な区別がありません。最初の配列のコードは

$home = [
	0 => '佐藤', 1 => '鈴木', 2 => '田中', 3 => '高橋', 4 => '鈴木',
	5 => '佐藤', 6 => '斉藤', 7 => '田中', 8 => '高橋', 9 => '鈴木'
];
 と書くこともできます。

 また、連想配列や配列の値を読み出す [ ] の中の数字や文字列をキー(key)と言います。覚えておいてください。

目次

×