WEBシステムの開発プラットフォーム LIB PHP Framework! 高速でセキュアなフルスクラッチ開発を今すぐ開始できます。

PHP基礎学習

Chapter1. 変数とデータ型

本章ではプログラミング言語のもっとも基本となる、変数とデータ型について学習します。
意外と簡単な内容かもしれませんが、学習が進むにつれ本章の理解度でスキルに差が出てきますので、反復してしっかり覚えましょう。

1. 変数とは

変数(へんすう)とは、データを入れておく箱のようなものです。
プログラミングは、名前をつけた箱にデータを入れることから始めます。

実際に書くプログラミングコードは以下のようになります。
$string = "Hello";

イコールで挟まれた左辺が変数で、右辺がデータです。
変数は$(ダラー)で始まる半角英数字アンダースコアで命名します。

下記のように$の直後に数字は使えません。
$2 = "Hello"; // この構文はエラーになります。

イコールは代入演算子と呼び、変数にデータを入れる作業を「代入(だいにゅう)」と言います。
代入のようなプログラミングコードの構文を「ステートメント」と言い、ステートメントの最後はセミコロンで終了します。

Web Studioのページ編集で、エディター内の任意の箇所に、下記のコードを入力してみましょう。
<div class="test">

<?php
$string = "Hello";
echo $string;
?>

</div>

「<?php」はPHP開始タグ、「?>」はPHP終了タグと呼び、PHP開始タグとPHP終了タグで囲まれたプログラミングコードがサーバーで実行され、実行結果がHTML内に挿入されます。
プログラミングコード2行目の「echo」はPHPの標準ステートメントで、続く変数に入っているデータを出力します。

ブラウザで、上記コードを入力したページにアクセスすると、Helloが表示されます。
また、「ページのソースを表示」で実際にサーバーから出力されたソースを見ると、下記のようなタグが出力されているのが分かります。
divタグ内の2つ目の改行の直前に「Hello」が挿入されています。
<div class="test">

Hello
</div>

2. データ型

変数に代入するデータには複数のタイプがあります。
これをデータ型と言います。

■ 文字列 string

string(ストリング)はその名の通り文字の集まりです。
文字列は「"Hello"」のようにダブルクォーテーションで括る形で記述します。このような記述のルールをリテラルと言います。
シングルクォーテーションで括る形でも記述できますが、便宜上ダブルクォーテーションに統一しましょう。
$string = "Hello";
$string = 'Hello'; // 間違いではないがダブルクォーテーションに統一する

文字列がダブルクォーテーションで括られた場合、エスケープシーケンスと言う特殊な文字を記述できます。
$string = "Hello\n";
この場合「n」をバックスラッシュでエスケープすることで改行を表します。
エスケープとは、続く文字を別の意味で使用するということで、上記の例では「n」をエヌでははく改行を表す文字として使用することになります。
この改行は改行タグ<br>とは異なり、ブラウザ上では改行されません。Eメールの本文や、JavaScriptのアラートに使用します。

文字列中にダブルクォーテーションを記述したい場合は、ダブルコーテーションをエスケープします。
$string = "Hello \"World\"\n";
echo $string; // 「Hello "World"」が出力されます。

また、文字列がダブルクォーテーションで括られた場合、下記のようにして文字列中に別の変数を埋め込むことができます。
$string1 = "World";
$string2 = "Hello {$string1}";
echo $string2; // 「Hello World」が出力されます。

文字列は結合演算子ドット「.」で連結させることができます。
$string = "Hello" . " World";
echo $string; // 「Hello World」が出力されます。

プログラミングには可読性が重要です。
ドットでの連結は大変見ずらいですので、下記のように複数行に分けドットイコールで結合しましょう。
$string = "Hello";
$string.= " World";
echo $string; // 「Hello World」が出力されます。

■ 数値 int

int(イント)は整数型とも言い、10進数、16進数、8進数、2進数の数値を表します。
通常は数字のみを記述し10進数を使用します。
$number = 1234; // 10進整数
$number = 0123; // 8進数 (10進数の83と等価)
$number = 0x1A; // 16進数 (10進数の26と等価)
$number = 0b11111111; // 2進数 (10進数の255と等価)
8進数は数字の前に「0」を付け、16進数は数字の前に「0x」を付け、2進数は数字の前に「0b」を付ける形で記述します。

数値は下記のように代数演算子を使用して演算を行います。
$a = 20;
$b = 10;
$number = $a + $b; // 加算、結果は30
$number = $a - $b; // 減算、結果は10
$number = $a * $b; // 乗算、結果は200
$number = $a / $b; // 除算、結果は2
乗算の演算子はエックス「x」ではなくアスター「*」ですので注意してください。

プログラミングでは除算の余りを求める剰余演算子があります。
$a = 23;
$b = 10;
$number = $a % $b; // 剰余、結果は3

また、インクリメント、デクリメントを行う加算子/減算子があります。
$a = 20;
$a++; // $aのデータが21になる
$b = 20;
$b--; // $bのデータが19になる

下記のように任意の数をプラスイコールで加算、マイナスイコールで減算する記述方法もあります。
$a = 20;
$a += 5; // $aのデータが25になる
$b = 20;
$b -= 5; // $bのデータが15になる

■ 論理型 bool

bool(ブール)はbool値(ブールチ)やboolean(ブーリアン)とも言いますが、真偽(Yes or No)を表す値(あたい)で、true(トゥルー)またはfalse(ファルス)どちらかのデータです。
このリテラルは大文字小文字を区別しませんが、小文字に統一して記述しましょう。
$a = TRUE;
$b = FALSE;

$a = True;
$b = False;

$a = true; // 小文字に統一する
$b = false; // 小文字に統一する

単純なデータ型ですが、プログラミングはtrueまたはfalseで分岐処理していきますので、大変重要なデータ型です。

■ NULL

null(ヌル)は変数にデータが代入されていない状態を表します。
$var; // この状態はnull
$var = "Hello"; // string型のデータを代入
$var = null; // nullに戻す

変数がnullか否かで分岐処理することもありますので、しっかり把握しておきましょう。

3. 配列

データ型には前項のような単一の値(あたい)を表すデータ型の他に、複数の値をまとめて保持する配列(はいれつ)と言うデータ型があります。
PHPの配列はキーと値の組み合わせで、連想配列とも言います。

配列は、キーと値を「キー => 値」の形式で、カンマ区切りで記述します。
下記のいずれかの構文を使用できますが、角括弧で記述する短縮構文に統一します。
$array = array("name" => "inoue", "pref" => "osaka");

$array = ["name" => "inoue", "pref" => "osaka"]; // 短縮構文に統一
$arrayと名前の箱に、仕切りを付け左側にnameというラベルを張り、右側にprefというラベルを張ったような感じです。

多くのキーと値の組み合わせを定義する場合は下記のように複数行で記述します。
$array = [
 "name" => "inoue",
 "tel" => "00-0000-0000",
 "post" => "540-0014",
 "pref" => "Osaka",
 "addr1" => "Nishi-ku, Osaka",
 "addr2" => "1-23-25, Kitahorie"
 ];
ひとつの箱に、たくさんの仕切りを付け、ラベルを貼った感じになります。

■添字配列

キーを省略して下記のようなシンプルな配列を定義できます。
この場合、0から始まる連番がキーとなります。
$array = ["orange", "banana"];

このような、文字列や連番のキーを「インディックス」と言い、対応する値を「配列の要素」と言います。
要素は角括弧構文でアクセスします。
$array1 = ["name" => "inoue", "pref" => "osaka"];
echo $array1["name"]; // 「inoue」が出力されます。
echo $array1["pref"]; // 「osaka」が出力されます。

$array2 = ["orange", "banana"];
echo $array2[0]; // 「orange」が出力されます。
echo $array2[1]; // 「banana」が出力されます。

配列の要素は下記のようにして追加することが出来ます。
$array1 = ["name" => "inoue", "pref" => "osaka"];
$array1[] = "tel" => "00-0000-0000";

$array2 = ["orange", "banana"];
$array2[] = "apple";
箱に仕切りが追加されたような感じです。

■多次元配列

配列の要素には、他の配列を指定することもできます。
このような配列を多次元配列と言います。
$array1 = [
 "name" => "inoue",
 "tel" => "06-0000-0000",
 "pref" => "Osaka"
 ];
$array2 = [
 "name" => "suzuki",
 "tel" => "03-0000-0000",
 "pref" => "Tokyo"
 ];
$address = [ $array1, $array2 ];
仕切りをつけた大きな箱に、仕切りの付いた小さな箱を入れるイメージです。

要素は下記のようにして追加することが出来ます。
$address[] = [
 "name" => "sato",
 "tel" => "045-0000-0000",
 "pref" => "kanagawa"
];

この先、DataBase(データベース)などの構造化されたデータを扱う際には、多次元配列を使用しますので、しっかりとマスターしておきましょう。