Webサイト制作におけるPHPの基本(その2:変数、定数、データ型)

Webサイト制作におけるPHPの演算で、同じ値を使い回したりする際に必要となる変数、定数、データ型についてまとめておく。

基本概念
  • 変数:代入した値を一時的に保持し、変更ができる
  • 定数:宣言時に代入(セット)した値を保持し、変更ができない
  • データ型:文字列や数値、真偽値などのデータの種類
変数名の原則

変数に名前を付けるにあたって、以下の原則を守ること。

  • 変数名のはじめに「$」をつける
  • 変数名の先頭は英字orアンダースコア「_」であること ※数字は不可
  • 変数名の2文字目以降は英数字orアンダースコア「_」であること
  • 変数名の大文字/小文字は区別される


また、変数名を付ける際に考慮すべきこととして、以下のことがあげられる。

  • 変数が表す内容を理解しやすい名前にする
  • 無駄に長すぎず、省略しすぎない程度のものにする
  • 後で混同したりしないように、似たような名前は付けない
  • 基本的にはローマ字表記ではなく、英単語を用いるようにする
  • 記法を統一する
(主な)記法 概要
キャメルケース記法 先頭の文字を小文字にして、以降の単語の区切りを大文字にする $myValue
アンダースコア記法 すべての文字を小文字にして、単語の区切りをアンダースコアにする $my_value
Pascal記法 すべての単語の区切り(先頭の文字)を大文字にする $MyValue
定数名の原則

定数を用いる際には、最初に以下の点に注意して定義しておく必要がある。

  • constの後に定数名を書く(PHP 5.3.0 以降で動作)
  • define()関数で定義 ※define('定数名','値');
  • 「$」は付けない
  • 変数名と区別できるようにすべて大文字で書くのが一般的

以下、記述例。

const DISCOUNT = 0.1;
define('VALUE', 5.5);

参照:http://php.net/manual/ja/language.constants.syntax.php

データ型の主な種類

PHPではデータ型の扱いは他のプログラミング言語と比べると寛容だが、厳密な演算や比較を行う際には注意する必要がある。

整数型(integer) -10、0、100などの整数
浮動小数点型(float、double、real) 0.1、1.875、5.5e6などの小数点以下の表記をもつ数値
文字列型(string) "はじめまして"、"さようなら"などの文字列
真偽型(bool、boolean) TRUE(true)、FALSE(false)
複合型(array、resource、object) 上記以外の複合的な型

※真偽値である「TRUE」と「FALSE」は、1つの値という扱いになり、文字列ではないのでシングルクォートで囲む必要はない(囲むと別の扱いになる)

文字列の表記におけるクォートに関する注意点

PHPで文字列を表記する際は、それが文字列であるということを意味する記号としてシングルorダブルクォートを用いて、文字列をくくる必要がある。
そのため、表示したい文字列の中にシングルorダブルクォートが含まれている場合、以下の点に注意して意味(役割)を区別する必要がある。

  • PHPではシングルorダブルクォートの前に「\」をいれて「\'」or「\"」とすると、文字列の始終を示すクォートではないただの文字としての「'」or「"」という扱いになる。
  • シングルクォートとダブルクォートでは、クォート内に含まれた変数及びエスケープシーケンスを解釈するか否かが異なる。シングルクォートは解釈せず、ダブルクォートは解釈する(このダブルクォートの機能を変数展開という)。

※参照:エスケープシーケンスhttp://www.phpbook.jp/tutorial/string/index4.html
※参照:エスケープシーケンスhttp://php.net/manual/ja/regexp.reference.escape.php

以下、確認コード。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>変数、定数、クォートの機能</title>
</head>
<body>
<?php
$first = 10;
print($first).'<br>'."\n";

define('VALUE', 5.5);
print(VALUE).'<br>'."\n";

$url = 'http://d.hatena.ne.jp/porco_webangya/';
$test1 = "Webあんぎゃ({$url})";
$test2 = 'Webあんぎゃ({$url})';
$test3 = 'ダブルの'."\n".'テスト';
$test4 = 'シングルの'.'\n'.'テスト';
print($test1).'<br>'."\n";
print($test2).'<br>'."\n";
print($test3).'<br>'."\n";
print($test4);
?>
</body>
</html>

以下、表示結果。
←クリックで拡大表示

※文字列に変数を含める場合には、文字列と変数とを区別するために変数部を「{}」で囲むようにする