数値と文字列の性質
前の記事「【PHPプログラミング入門講座】変数」で、変数の文字列と数値のそれぞれを代入する場合、数値の場合は、
<?php $num = 9;
のように代入し、文字列の場合は、
<?php $str = 'This is a pen.';
のように 代入すると説明しました。
この例だけでは、数値と文字列は、シングルクォーテーションまたはダブルクォーテーションで囲んで代入するの違うと思うかもしれません。
しかし、正しくはそうではなく、PHPプログラムの実行エンジンがその値自身や使用している演算子などのを見て判断しています。
数値が文字列に変わったり、文字列が数値に変わったりするプログラム例
状況により、数値が文字列に変わったり、文字列が数値に変わったりするプログラムの例を挙げます。
<PHPプログラム>
<?php $num = '1' + '2'; echo $num;
<実行結果>
3
数値をシングルクォーテーションで囲んで文字列のように書いても、足し算すると、数値として認識され計算が行われます。
<PHPプログラム>
<?php $num = 10; $str = '参加者は' . $num . '名です。'; echo $str;
<実行結果>
参加者は10名です。
数値を結合演算子「 . 」で文字列と結合すると、文字列の一部として組み込まれます。
数値を文字列に変換するような処理は必要はありません。
データ型を確認する関数(デバッグ用関数)
PHPプログラムで、使用されている変数の値が数値であるか、もしくは文字列であるかを確認したい場合は「var_dump関数」を使うと便利です。
var_dump関数は、変数のデータ型(整数 or 文字列など)と値を出力する関数です。
プログラムの不具合の原因調査のために一時的に使用する関数であり、通常の処理(Webサイトの訪問者がアクセスした時の処理)には使いません。
プログラミングの世界では、プログラムの不具合のことを「バグ」と呼びます。
そして、バグの原因を調査する作業のことを「デバッグ」と呼びます。
また、デバッグのために、echoやvar_dumpなどを使用して、画面に処理途中のデータを出力しますが、その記述のことを「デバッグライト」と呼びます。
var_dump関数を使ったサンプルプログラム
それではvar_dump関数を使ったPHPのサンプルプログラムをいくつか挙げます。
<PHPプログラム>
<?php $num = '1' + '2'; var_dump($num);
<実行結果>
int(3)
これは、変数$numの値が「3」であり、データ型が「int (整数型 = integer)」であるということを意味しています。
<PHPプログラム>
<?php $num = '1.2' + '2.34'; var_dump($num);
<実行結果>
float(3.54)
これは、変数$numの値が「3.54」であり、データ型が「float (浮動小数点型)」であるということを意味しています。
浮動小数点とは、プログラミング用語であり、小数の表現形式(単純にいうと「小数」のこと)を意味します。
<PHPプログラム>
<?php $num = 10; $str = '参加者は' . $num . '名です。'; var_dump($str);
<実行結果>
string(26) "参加者は10名です。"
これは、変数$strの値が「参加者は10名です。」であり、データ型が「string(文字列)」であり、データの長さが26バイト(※補足1)であることを意味します。
※補足1:文字コートがUTF-8の場合、多くの日本語は1文字3バイトになります。そして、半角英数字は1バイトです。
ここでは、日本語8文字=24バイト+半角英数字2文字=2バイトで、合計26バイトになっています。
その他var_dump関数の便利な特徴
echo関数は、数値と文字列しか値を出力することができません。
しかし、var_dump関数は、数値と文字列の変数以外にも、今後説明する「配列」や「オブジェクト(クラス)のインスタンス」など複雑なデータ構造を持つ変数の値も出力することができます。
よって、変数がどのようなデータか不明な場合は、echoではなく、var_dump関数を使うと便利です。
こばなし
バグの言葉の由来ですが、世界で初めて発生したプログラムの障害が、虫(bug)が原因だったことに由来します。昔のコンピューターのプログラムは、今のように電子化されておらず、紙テープに点字のような穴を開け、オルゴールのような仕組みでプログラムを実行していました。その時に、虫(bug)が紙テープを読み込む機械に挟まれ、プログラムのエラーが発生しました。このような歴史から、プログラムの不具合のことをバグ(bug)と呼ぶようになったそうです。
おわりに
今回は、PHPプログラムの数値と文字列の性質と、var_dump関数を使ったデータ型の確認方法について説明しました。
PHPのデータ型(数値 or 文字列など)は、PHP実行エンジンが状況に応じて適切な自動変換を行います。
プログラムでエラーが発生した時の原因調査や、開発中のプログラミングで変数のデータ型や変数の値を知りたい場合は、var_dump関数を使えばたった一行で変数の内容をチェックできます。
便利な関数ですので覚えておきましょう。
PHPプログラミング入門講座 〜 全記事一覧 〜
- PHPで開発された有名なWebサイト
- PHPでどのような機能が作れるか?
- サーバーについて理解しよう
- Webサーバーの処理について詳しく説明
- PHPプログラムの動作について説明
- パソコンにPHPの動作環境を構築しよう
- 一番簡単なPHPプログラムを書いてみよう
- ブラウザ画面にメッセージを表示しよう
- PHPタグの書き方と終了タグの省略
- 特殊なメッセージ(文字列)の書き方
- PHPプログラムで計算をしてみよう
- 変数
- 文字列の結合とヒアドキュメント
- ファイルの分割とファイルの読み込み
- コメント
- 定数
- 現在のページ:数値と文字列の性質・デバッグ
- 条件分岐 (if文)
- 論理型 (boolean型)
- 比較演算子
- 論理演算子
- 条件分岐 (switch文)
- 三項演算子
- 配列とforeach文
- 代入演算子 / 加算子 / 減算子
- ループ処理 (for文)
- ループ処理 (while文とdo-while文)
- break
- continue
- 連想配列
- 連想配列のループ処理