- 更新日: 2017年04月25日
- 公開日: 2017年02月22日
ゼロから始めるPHP講座 Vol07 データ型の種類
ゼロから始めるPHP講座 データ型の種類
###データ型とは データの扱いに関する形式のことをデータ型といいます。
変数の説明の際、「変数とはデータを入れる箱のようなもの」と説明致しましたが、データ型とは、「データを入れる箱の形」となります。
箱の形(データ型)は様々あり、形によって入れることができるデータ(値)が変わります。
###データ型の種類 数値型、文字列型、論理型、NULL型、etcと多数のデータ型があります。
本ブログでは、まずよく使われる5つの型について説明します。
###整数型(integer), 浮動小数点型(float) その名の通り、整数型は整数を、浮動小数点型は小数を扱う形式となります。
これまで「$hp = 200;」と代入していたように、'(シングルクォート)では囲まずに、そのまま書くことで整数型や浮動小数点型となります。
正の数は「+」を省略可能で、$int_aのように書くのが一般的です。
「$int_a = 123;」とした場合、
- 変数名
- int_a
- データ型
- 整数型(integer)
- 値
- 123
###文字列型(string) その名の通り、文字を扱う形式となります。
文字列型は"(ダブルクォート)又は'(シングルクォート)で囲むことで、文字列型となります。
"(ダブルクォート)又は'(シングルクォート)の違いは次の項目で説明致します。
「$string_single = 'シングル';」とした場合、
- 変数名
- string_single
- データ型
- 文字列型(string)
- 値
- シングル
###シングルクォートとダブルクォートの違い この2つの違いは、変数やエスケープシーケンスを認識できるかできないかとなります。 まずはお手本にある通り、プログラムを書いてみましょう。 ファイル名: single_double.php
[code title="single_double.php"]
<?php $test_str = 'これは変数です'; print "ダブルクォート: $test_str"; print "\n"; print 'シングルクォート: $test_str'; print '\n'; ?>[/code]
エスケープシーケンスとは、改行を表す「\n」など特殊な役割を持った文字のことを表します。
※改行を表す文字に使う記号はOSやフォントによって「円記号」か「バックスラッシュ」のどちらかが使われます。 シングルクォートを使用した場合は「$test_str」や「\n」と、そのまま文字として表示され、ダブルクォートの場合は、変数の値が表示されます。シングルクォートとダブルクォートのどちらを利用するかですが、基本的にシングルクォートを利用すべき です。
変数を「文字」ではなく「変数」として自動で判別してくれるダブルクォートは一見便利に見えますが、人がプログラムを読んだ際に、文字として利用したかったのか、変数として利用したかったのかが分かりにくくなります。
シングルクォートとダブルクォートの使い方に限らず、複数の意図が考えられるプログラムの書き方をするべきではありません。
余談ですが、自分が書いたプログラムでさえ、3ヶ月経過すると他人が書いたプログラムに見えます。
###NULL型(null) NULLは値を持たないことを表す形式となります。NULL型の値はNULLのみとなります。
まずはお手本にある通り、プログラムを書いてみましょう。 ファイル名: null.php
[code title="null.php"] <?php var_dump($not_define); ?> [/code]
最後に表示されているのが$not_defineの値であり、「NULL」と表示されます。
「Notice: Undefined variable: not_define」は、「not_defineという変数は定義されていません」という意味のエラーメッセージとなります。
$not_defineという変数に何も値を代入していないため、このようなエラーメッセージが出力されました。
このようにNULLは変数に何も値を代入していないときの値などに使われます。
次に示すように、「空」と「NULL」は別な意味となりますので、注意が必要です。
「$empty = '';」とした場合、
- 変数名
- empty
- データ型
- 文字列型(string)
- 値
- 空
「$null;」とした場合、
- 変数名
- null
- データ型
- NULL型
- 値
- NULL
###論理型(boolean) 論理型はtrue(真)又はfalse(偽)の2つの値を持つ形式となります。
詳細については「if」説明時に行いますため、定義の仕方のみ、例を以下に示します。
###補足. その他のデータ型について データ型は今回紹介した5つ以外にも配列型(array)やオブジェクト型(object)などありますが、これらについては別途説明します。
###データ型の確認方法 変数の型や値を調べるのに便利な関数として、var_dump関数があります。 ####var_dump リファレンス
引数の型や値の情報を含めた情報を表示します。 説明に出てきた様々な型について、var_dumpした結果を確認してみましょう。 ファイル名:var_dump.php
[code title="var_dump.php"]
<?php /* 色々な値の入った変数をvar_dumpしてみよう */[/code]// 数字の1 $var1 = 1; print '■数字のvar_dump'; print "\n"; var_dump($var1); print "\n";
// 文字列の1 $var2 = '1'; print '■文字列のvar_dump'; print "\n"; var_dump($var2); print "\n";
// null $var3 = null; print '■nullのvar_dump'; print "\n"; var_dump($var3); print "\n";
// boolean $var4 = true; print '■booleanのvar_dump'; print "\n"; var_dump($var4); print "\n";
?>
また以下の型と値が何か予測した上で、var_dump()を行い確認してみましょう。
データ型を調べる関数はいくつかありますが、変数のデータ型と値の両方を同時に調べることができるvar_dump()は、デバッグに便利です。
今後より複雑なプログラム作成をしていく際、デバッグとして頻繁に利用しますので、必ず覚えておきましょう。
###課題 以下の値の型が何か、答えなさい。
$q_1 = '1';
$q_2 = "1";
$q_3 = 1;
$q_4 = 'true';
$q_5 = true;
$q_6 = 'null';
$q_7 = '';
$q_8 = 1.34;
$q_9;
NEXT LESSON ☛ 演算子の種類
PREV LESSON ☛ 関数の書き方ゼロから始めるPHP講座 Vol07 データ型の種類
- この記事を書いた人
- CodeCampus編集部