スカラー型とは、常に一つの値を保持している変数のことです。例えば、名前のついた一つの箱のようなもので、その箱には数値・文字列を問わず、値を一つだけ入れることができます。
| 空白 | 型名 | 説明 |
|---|---|---|
| boolean | 論理型 | 「true」もしくは「false」のいずれか 大文字・小文字は区別しない |
| integer(double) | 整数型 | 「1」 「12」 「100」などの小数点をもたない整数 |
| float | 浮動少数点型 | 「1.14」 「12.83」などの少数点以下の数値がある数値 |
| string | 文字列型 | 「あいうえお」「abcde」「文字」などの文字列 |
論理値は真偽の型、trueかfalseのいずれかを表しています。変数に代入する時には、大文字・小文字に関係なくtrueまたはfalseを指定します。
$str = true; // 値trueを$strに代入する
既存の値を論理値へ変換する場合には、下記の値はfalseとみなされます。
PHPの整数が扱える範囲は-2,147,483,648~2,147,483,647で少数の値や指標を含まない値となります。整数の範囲外の数を指定した場合は、浮動小数点数として解釈されます。
また、計算結果が整数の範囲の外の場合にも浮動小数点数として返されます。
ただ、整数のサイズはプラットフォームによって異なる場合があります。
注)プラットフォームとはOSの種類や環境の設定のことです。
$figure = 10;$figure = 18000;
PHPの変数で扱う浮動小数点数は、だいたい10進数で14桁の精度があります。
ただ、整数と同じくサイズは、プラットフォームの相違で異なる場合があります。
$floatnumber = 3.42641357;
PHPの変数で扱う文字列は下記の3つの方法で指定します。
文字列を指定する一般的な方法は、シングルクォーテーション「'」で括ります。文字列をダブルクォーテーション「"」で括った時は、特殊文字のエスケープシークエンスを多く使用することが出来ます。ヒアドキュメントは、PHP内にまとまった文章を直接記述し利用できるようにする方法です。
エスケープシークエンス(escape sequence)は、出力の表示結果を制御したりするための特殊な文字のことです。
$name = "山田 花子";
$address = "東京都新宿区百人町"
$telnumber = "03-1234-5678"
| ¥n | ラインフィード |
|---|---|
| ¥r | キャリッジリターン |
| ¥t | 水平タブ |
| ¥¥ | バックスラッシュ |
| ¥$ | ドル記号 |
| ¥" | 二重引用符 |
<?php
echo( "はじめまして。<br />¥n" );
echo( "私は¥"山田花子¥"と申します。<br />¥n" );
echo( "職業はバイヤーで、 ¥$100 で仕入れてきた海外の洋服を<br />¥n" );
echo( "定価 ¥¥20,000 で販売しています。<br />¥n" );
echo( "取り扱いサイズ<br />¥n" );
echo( "¥t28<br />¥r" );
echo( "¥t30<br />¥r" );
echo( "¥t32<br />¥r" );
?>
はじめまして。 私は"山田花子"と申します。 職業はバイヤーで、 $100 で仕入れてきた海外の洋服を 定価 ¥20,000 で販売しています。 取り扱いサイズ 28 30 32
はじめまして。<br /> 私は"山田花子"と申します。<br /> 職業はバイヤーで、 $100 で仕入れてきた海外の洋服を<br /> 定価 ¥20,000 で販売しています。<br /> 取り扱いサイズ<br /> 28<br /> 30<br /> 32<br />
文字列内で変数を扱う場合、ダブルクォーテーション「"」を使用した場合には変数が展開されますが、シングルクォーテーション「'」を使用した場合には展開されません。
<?php
$name1 = "山田 花子";
$name2 = "山田 太郎";
$name3 = "山田 二郎";
echo "私の名前は $name1 です。<br />¥n";
echo "私の名前は$name2です。<br />¥n";
echo '私の名前は $name3 です。';
?>
このように、シングルクォーテーション「'」の場合には、変数の中身が取り出されずそのまま表示されます。
それでは、$name2の"山田 太郎"は、なぜ表示されなかったのでしょうか。
理由は、echoの「$name2」前後に半角スペースをつけなかった場合、PHPでは「$name2」を変数とは扱かわず、「$name2です。」を変数として扱ってしまうからです。
これを回避する一つの方法として、変数を波括弧「{ }」で囲むという方法があります。
<?php
$name1 = "山田 花子";
$name2 = "山田 太郎";
$name3 = "山田 二郎";
echo "私の名前は $name1 です。<br />¥n";
echo "私の名前は$name2です。<br />¥n";
echo '私の名前は $name3 です。';
?>
私の名前は山田 太郎です。