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);
データ型の主な種類
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>
※文字列に変数を含める場合には、文字列と変数とを区別するために変数部を「{}」で囲むようにする