はじめに
こんにちは。キノコードです。
「【5分レッスン】PHP超入門コース#07 データ型」について説明します。
データ型とは?
データ型とは、変数に入れるデータの種類のことです。
この動画では、データ型の数値型、文字列型、ブール型について説明します。
ちなみに、PHPでは、変数にデータを入れるときに、データ型を指定する必要がありません。
PHPが自動的にデータ型を判断してくれるからです。
このようなプログラミング言語のことを動的型付け言語といいます。
動的型付け言語には、PHP、JavaScript、Python、Rubyなどがあります。
一方、変数にデータを入れる時にデータ型を指定する言語のことを、静的型付け言語といいます。
静的型付け言語には、C言語、Java、Kotlin、Goなどがあります。
PHPの数値型
それではまず、最初に、数値型について説明します。
PHPの数値型には、整数型の「integer型」、小数点型の「float型」「double型」があります。
「double型」と「float型」の違いは、「double型」の方が、小数点以下の桁数が多いデータを代入できる点です。
PHPのプログラムを書いて、みていきましょう。
<?php
$num01 = 123;
$num02 = 1.23;
echo $num01."\n";
echo $num02."\n";
num01には、整数の123を代入。
num02には、小数の1.23を代入します。
実行してみましょう。
表示されました。
<?php
$num01 = 123;
$num02 = 1.23;
echo gettype($num01)."\n";
echo gettype($num02)."\n";
PHPのデータ型は、「gettype()」を使用して確認する事が出来ます。
num01は、整数型の「integer」。
num02は、小数点型の「float」となるはずなのですが、PHPの仕様により、「float」の場合には 「double」が返されます。
実行してみましょう。
予想通り表示されました。
<?php
$num01 = 123;
$num02 = 1.23;
echo gettype($num01)."\n";
echo gettype($num02)."\n";
var_dump($num02)."\n";
小数点型の正しいデータ型を知るには、var_dumpを使いましょう。
var_dumpを使うと、データ型と変数の中身を表示してくれます。
実行してみましょう。
floatと、変数の中身の「1.23」が表示されました。
PHPの文字列型
<?php
$string_a = "Hello,World!";
echo $string_a."\n";
echo gettype($string_a)."\n";
次に、文字列型について説明します。
文字列型は「String型」ともいいます。
文字列はシングルクォーテーション、またはダブルクォーテーションでくくります。
今回はダブルクォーテーションで「Hello,World!」の文字列をくくります。
「Hello,World!」をstring_aという変数に代入をします。
string_aの中身を表示させ、あわせて、データの種類を表示させてみましょう。
「Hello,World!」と、データ型のStringが表示されるはずです。
実行してみましょう。
予想通り「Hello,World!」と 「String」が表示されました。
PHPのブール型
最後に、ブール型です。
ブール型は、Boolean型(ブーリアン型)ともいいます。
PHPのブール型は少し特殊です。そのため、まずは、一般的なプログラミング言語のブール型を説明します。
ブール型は、TrueまたFalseの2つのうち、どちらか1つを持つ型です。
TrueとFalseとはなんでしょうか?
例えば、10と1では10の方が大きいです。
つまり、「10>1」は正しいです。
これを変数に代入するとTrueが入ります。
逆に「10<1」は誤りです。これを変数に代入するとFalseが入ります。
これが一般的なプログラミング言語でのブール型です。
しかし、PHPのブール型は特徴的です。
PHPの場合、Trueのときは「1」が代入され、Falseのときは何も代入されません。
コードを書いてみていきましょう。
<?php
$a = 10;
$b = 1;
$bool01 = ($a > $b);
echo $bool01."\n";
echo gettype($bool01)."\n";
aという変数に10を代入。bという変数に1を代入しましょう。
a>bは正しいです。
結果をbool01に代入してみましょう。
「1」が代入されいるはずです。
bool01のデータ型も確認してみましょう。
実行してみます。
「1」と、ブール型である「boolean」が表示されました。
<?php
$a = 10;
$b = 1;
$bool01 = ($a < $b);
echo $bool01."\n";
echo gettype($bool01)."\n";
不等号を逆にすると誤りなので何も代入されません。
したがって、bool01には何も表示されていないはずです。
また、bool01のデータ型も確認しておきましょう。
実行してみます。
ブール型の「boolean」のみが表示されました。