PHPのプログラミング基礎や基本を学びたい!という初心者向けに分かりやすく解説して行きたいと思います。
この記事では、PHPのプログラミング基礎にフォーカスして学習できるようにまとめていきます。3回目になる今回は、データ型について学んでいきましょう。
PHPのプログラミング学習では、1度だけ読んですべて理解するのは難しく、大切な基礎の理解を深めるためには繰り返し読み直していただければ良いと思います。
初心者の方にとってPHPのプログラミングの学習に役立てて頂けれたらうれしく思います。
環境概要
この記事でご説明する方法は、以下のパソコンで進めた内容になります。
ご自身と環境が違うことで、挙動が変わる場合があります。
- OS:Windows 10 Home 64 ビット
- CPU:Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz (8 CPUs), ~2.0GHz
- GPU:Intel(R) UHD Graphics 620
- メモリー:16GB
また、この記事内容では、以下の開発環境が前提となります。
- パソコンに「XAMPP」をインストール済み
- パソコンにテキストエディタ「VSCode」をインストール済み
インストールがまだの場合は、以下からインストールをしましょう!
PHPのプログラミング基礎学習 – データの型を理解する!
PHPのプログラミング基礎学習の3回目は「データの型」について説明していきます。
過去シリーズは、以下のリンクよりご覧になってください。
では、学習を始めましょう!
データの型とは?
PHPの変数についての説明で少し触れましたが、数値(3600
)や文字列('これは文字列データです'
)使いました。これらそれぞれにはPHPで扱えるデータの型がありますので、詳しく説明していきます。
データの型とは、要約すると「データの性質」のことをいい、このデータの型によって扱い方が違ってきます。
例えば、「echo 10 * '文字列です';
」という違うデータ型同士の掛け算の場合、演算として正常に機能しません。(PHPにおいては、Warningの警告が発生する)このように、型が違う者同士は同様な扱い方はできないのです。
コンピュータは、いろいろなデータを使いますが、それぞれのデータの使い方を認識し判断するためには、データの型という仕組みがあります。
プログラミングにおいてデータの型は重要になります。データ型の性質を理解することで、正確なコードが書けるようになります。ただしPHPにおいては、データの型は宣言しなくてもPHPが自動的に判別(暗黙的な型変換)してくれるためデータ型の宣言が必要ではありません。
といいつつも、データの型の概念は重要になりますのでしっかりと理解していきましょう!
PHPのデータの型
PHPのデータの型は以下の通りになります。
文字列型(string:ストリング)
<?php
$string1 = 'これは文字列型です';
$string2 = "これも文字列型です";
echo $string1;
var_dump($string2);
?>
まずは、「文字列型(string)」です。
PHPでは、文字列は非常に重要な役割になり、多くのデータはこの文字列で表わされます。というのも、画像や映像以外のデータのやり取りは文字データ(文字列型)になるのです。
インターネットやSNSで、検索や投稿などもWebの世界では主に文字データが使われてますよね。普段このようなことを考えることはないですが、思い返してみるとそうだなと気付くと思います。
文字列型は「'
」(シングルクオーテーション)または、「"
」(ダブルクオーテーション)で文字を囲むことで文字列型としてコンピュータは認識します。
$string1
、$string2
は文字列型の「テキスト
」が変数に代入されています。echo
はデータを表示するので、$string1
に代入された値「これは文字列型です
」が表示されますが、var_dump()
を使用することで、データ型などさまざまな情報が確認できるようになります。
sample.php を上記の書き換えて、ターミナルでファイルを実行して確認してみてください。
var_dump($string2);
とするとstring(27) "これも文字列型です"
と表示されます。表示内容としては、データ型(テキストバイト数)"文字列"
になります。これ例では、テキストバイト数が27
と表示されていますが、日本語の場合、1文字が3バイトになり、これも文字列型です
は9文字なので27バイトになります。ちなみに、英数字の場合は、1文字が1バイトになります。
整数型(integer:インテジャー)
<?php
$numbar = 3600;
var_dump($numbar);
?>
次に、「整数型(integer)」です。整数型は、3600
などの整数値のことです。
文字列型の時と同じように、var_dump()
を使用することで、データ型が確認できます。var_dump($numbar);
とすると、int(3600)
と表示されます。文字列型と表示が少し違いますが、データ型(数値)
と表示されます。
実際にコードを書き換えて、ターミナルからファイルを実行してください。
php sample.php // phpファイルを実行するコマンド
浮動小数点数型(float:フロート)(double:ダブル)
<?php
$pi = 3.14;
var_dump($pi);
?>
次に、「浮動小数点数型(float)」です。3.14
、1.23
などの算数や数学に学んだ小数点と同じです。
var_dump($pi);
とすると、float(3.14)
と結果が表示されます。こちらは整数型と同じく、データ型(数値)
と表示されます。
論理型(boolean:ブーリアン)
<?php
$a = true;
$b = false;
var_dump($a);
var_dump($b);
?>
ここまでで出てきた、「文字列型」、「整数型」、「浮動小数点型」などはテキストや数字なので、なんとなく理解しやすかったと思いますが、ここから徐々にプログラミング感を感じるデータ型の1つで、「論理型(boolean)」があります。
とはいってもシンプルで、論理型の値は2つだけしかなく、true
の(真)かfalse
の(偽)だけとなります。
true
とfalse
は用途は、制御文において活躍し、プログラムを作成する過程において、条件分岐と繰り返しというのがありますが、それらの制御するには欠かせない存在です。
var_dump($a);
とするとbool(true)
と結果が表示されます。データ型(論理値)
と表示されます。
配列型(array:アレイ)
<?php
$numbars = [100, 200, 300];
echo $numbars[0];
var_dump($numbars);
?>
次に、「配列型(array)」です。
今までは、1つの値を変数に代入しする形でしたが、複数の値をまとめておけるのが配列になります。例えるなら、今までの変数は1つの値しか代入できない箱($box = "1つだけの値";
)でしたが、配列は1つ以上の値を管理できる複数箱($boxs = ["1つ目の値", "2つ目の値", ...];
)になります。
添字配列
上記のコードの配列は、正しくは「添字配列」と呼び、配列内のそれぞれの値(データ)を識別するために自動的に「0」から始まる通し番号(添字)が与えられます。
配列は、[]
(ブラケット)を使い初期化します。
初期化とは、変数に代入する時に最初の値を定義しておくことを指します。また、配列の中にあるひとつひとつの値を、要素と呼びます。
[]
(ブラケット)の中に、値を書く時には1つずつの値を区切るために、,
(カンマ)を使います。カンマの後に半角スペースは無くてもプログラムは変わりませんが、慣用的に半角スペースを空けます。全角スペースではコンピュータが正しく動作できずエラーになりますので気を付けましょう。
上記コードの配列は、$numbars
という変数に3つの数字を連続して書いて定義しています。配列の中にある値を表示するには、echo $numbars[0];
と変数名の後に添字をブラケットで囲い書くことで表示されます。echo $numbars[1];
とすると200
が表示されます。
配列の中にある全ての値をecho
では表示できませんので、var_dump()
を使うと以下のような結果になります。
array(3) {
[0]=>
int(100)
[1]=>
int(200)
[2]=>
int(300)
}
print_r()
データ型を確認するには、var_dump()
を使ってきましたが、print_r()
を使って出力することで、「値だけ」の表示構成になり、見やすくなりますので状況により使い分けてください。
<?php
$numbars = [100, 200, 300];
print_r($numbars);
?>
上記コードに書き換えて、ファイルを実行すると以下のようになります。
Array
(
[0] => 100
[1] => 200
[2] => 300
)
連想配列
<?php
$numbars = [
'one' => 100,
"two" => 200,
"three" => 300
];
var_dump($numbars);
?>
添字配列は、添字配列変数名[0]
とブラケットの中に番号を入れることで、対象の値を取得ができました。
この[0]
を["one"]
などの文字列などを入れることで100
が取得できる配列を「連想配列」と呼びます。自動的に割り当てられる通し番号(添字)の代わりに名前を付与したというイメージになります。
上記のコードコードを実行すると、以下の結果になります。
array(3) {
["one"]=>
int(100)
["two"]=>
int(200)
["three"]=>
int(300)
}
var_dump($numbars["one"]);
とすることで、"one"
のキーに紐づく値100
を表示できます。
<?php
$numbars = [
'one' => 100,
"two" => 200,
"three" => 300
];
echo $numbars["one"] . PHP_EOL;
var_dump($numbars["one"]);
?>
実行結果は以下になります。
100
int(100)
ここで配列の基本記述をまとめます。
- 配列は、
[](ブラケット)
またはarray()
で作成 - 要素を区切るために「
,
」を要素の要素の間に - 要素ひとつひとつが、異なるデータ型でもOK
- 添字は
0
から始まる(添字配列) - 「
キー => 値
」のペアが1つの要素になる(連想配列)
<?php
// 連想配列の作成イメージ例
$連想配列変数名 = [
$キー1 => $値1,
$キー2 => $値2,
$キー3 => $値3,
...
];
?>
ちなみに、以下のコードの添字配列と連想配列は同じ結果になります。以下のコードに書き換えてファイルを実行して確認してみてください。
<?php
// 添字配列
$array1 = [
100,
200,
300
];
var_dump($array1);
// 連想配列
$array2 = [
0 => 100,
1 => 200,
2 => 300
];
var_dump($array2);
?>
オブジェクト型(object:オブジェクト)
次にオブジェクト型ですが、「オブジェクト指向」という概念に基づいたプログラミング手法である「オブジェクト」についての理解が必要になりますので、ここでは割愛します。
NULL型(null:ナル)
最後に、NULL型になります。大文字も小文字も区別されない定数がnull
で、NULL型は値はこのひとつだけです。
NULLは「空っぽ」の意味になります。変数にnull
が代入されている条件は以下の2つになります。
- 変数を宣言して、何も値を代入していない(
$var
のみ記述) - 変数に
null
を代入した
<?php
$var; // 1.変数の宣言のみで値の代入がない
var_dump($var);
$var2 = null; // 2.変数にnullを代入
var_dump($var2);
?>
上記コードに書き換えて、ファイルを実行した結果が以下になります。
PHP Notice: Undefined variable: var in C:\Users\account\file\path\sample.php on line 3
Notice: Undefined variable: var in C:\Users\account\file\path\sample.php on line 3
NULL
NULL
変数を宣言するだけで、値を代入しなかった場合は「警告」が表示されます。(Notice: Undefined variable: var ・・・
)警告の後に表示されたNULL
がvar_dump()
による結果が表示さた「NULL値」になります。
定数の性質として、変数は何度も代入できるますが、1度値を代入したら変更することができない性質をもっています。またPHPには定義済みの定数も多く存在します。
まとめ
PHPのプログラミング基礎のデータ型を解説しましたが、いかがでしたでしょうか?
プログラミングの基礎となる変数と同様に、データの型についても理解は必要になりますが、最初から覚えないとっていう感じではないので、こういうのがあるんだというぐらいで把握する程度で良いと思います。
では、お疲れ様でした!