Ext JSやRapid Driveなど
システム開発の技術情報をご紹介。

お問い合わせ 資料請求 無料見積り

お電話でお気軽にお問い合わせくださいTel 03-6805-2904 営業時間 [平日]AM 9:30 - PM 6:30

変数と配列

変数と配列について

スカラー型

スカラー型について

スカラー型とは、常に一つの値を保持している変数のことです。例えば、名前のついた一つの箱のようなもので、その箱には数値・文字列を問わず、値を一つだけ入れることができます。

スカラー型一覧
空白型名説明
boolean論理型「true」もしくは「false」のいずれか
大文字・小文字は区別しない
integer(double)整数型「1」 「12」 「100」などの小数点をもたない整数
float浮動少数点型「1.14」 「12.83」などの少数点以下の数値がある数値
string文字列型「あいうえお」「abcde」「文字」などの文字列
論理値(boolean)

論理値は真偽の型、trueかfalseのいずれかを表しています。変数に代入する時には、大文字・小文字に関係なくtrueまたはfalseを指定します。

論理値
$str = true; // 値trueを$strに代入する

既存の値を論理値へ変換する場合には、下記の値はfalseとみなされます。

  • intergerの0
  • floatの0.0
  • 空の文字列および文字列の0
  • ゼロを要素とする配列
  • ゼロを要素とするオブジェクト
  • NULL(値が入っていない変数を含む)
整数(integer)

PHPの整数が扱える範囲は-2,147,483,648~2,147,483,647で少数の値や指標を含まない値となります。整数の範囲外の数を指定した場合は、浮動小数点数として解釈されます。

また、計算結果が整数の範囲の外の場合にも浮動小数点数として返されます。

ただ、整数のサイズはプラットフォームによって異なる場合があります。
注)プラットフォームとはOSの種類や環境の設定のことです。

整数
$figure = 10;$figure = 18000;
浮動小数点数(float)

PHPの変数で扱う浮動小数点数は、だいたい10進数で14桁の精度があります。

ただ、整数と同じくサイズは、プラットフォームの相違で異なる場合があります。

浮動小数点数
$floatnumber = 3.42641357;
文字列(string)

PHPの変数で扱う文字列は下記の3つの方法で指定します。

  • シングルクォーテーション(引用符)
  • ダブルクォーテーション(二重引用符)
  • ヒアドキュメント

文字列を指定する一般的な方法は、シングルクォーテーション「'」で括ります。文字列をダブルクォーテーション「"」で括った時は、特殊文字のエスケープシークエンスを多く使用することが出来ます。ヒアドキュメントは、PHP内にまとまった文章を直接記述し利用できるようにする方法です。

エスケープシークエンス(escape sequence)は、出力の表示結果を制御したりするための特殊な文字のことです。

文字列
$name = "山田 花子";
$address = "東京都新宿区百人町"
$telnumber = "03-1234-5678"
PHPの主なエスケープシークエンス
¥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
HTMLソース
はじめまして。<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 です。

このように、シングルクォーテーション「'」の場合には、変数の中身が取り出されずそのまま表示されます。

それでは、$name2の"山田 太郎"は、なぜ表示されなかったのでしょうか。
理由は、echoの「$name2」前後に半角スペースをつけなかった場合、PHPでは「$name2」を変数とは扱かわず、「$name2です。」を変数として扱ってしまうからです。

これを回避する一つの方法として、変数を波括弧「{ }」で囲むという方法があります。

<?php
    $name1 = "山田 花子";
    $name2 = "山田 太郎";
    $name3 = "山田 二郎";

    echo "私の名前は $name1 です。<br />¥n";
    echo "私の名前は$name2です。<br />¥n";
    echo '私の名前は $name3 です。';
?>
実行結果
私の名前は山田 太郎です。