値のリテラル

PHPの動かし方の基本が頭に入ったところで、PHPの基本的な書き方、すなわち「文法」について説明していきましょう。まずは「変数」と「値」についてからです。

PHPでは、さまざまな値が登場します。各種の値を使って計算をしていくのが、プログラミングの基本中の基本といえます。多くのプログラミング言語では、使用する値は「変数」と呼ばれるものにおさめ、それを使って処理を行います。

スクリプトの中に直接記されるさまざまな値のことを「リテラル」と呼びます。PHPでは、さまざまな種類(タイプまたは「型」と呼ばれる)の値が扱われます。それぞれに、その値のリテラル記述法が決められています。以下にさっと整理しておきましょう。なお、種類の横にカッコで記されたものは、その種類の呼び名と考えてください。これは、後ほど「キャストjと呼ばれる種類の変換などに使います。今覚える必要はありませんがそういう名前になっているという程度に頭に入れておきましょう。

ダブルクオ一トとシングルクオートの違いは?

テキストの表記にはダブルクオートとシングルクオートの2つが用意されています。これらはどう違うのでしょうか。両者の違いは、中に記されているテキストを評価するかということです。PHPでは、エスケープ文字と呼ばれる特殊な文字(改行やタブなどを示すもの)や、変数などをテキストの中に含めて記述することがあります。ダブルクオートでくくった場合、こうしたテキストに含まれた要素は評価されたかたちで出力されます。一方、シングルクオートでくくった場合、これらは「そういうテキスト」であると判断され表示されます。

「テキストの中に変数などをそのまま埋め込んだ書き方」はとても便利ですが、うっかり間違いを引き起こしたり、ソースコードをわかりにくくしたりする要因となりがちです。またテキスト内の要素が評価されることを逆手に取った「クロスサイトスクリプテイング」と呼ばれるセキュリティ上の問題を引き起こしがちですので注意が必要です。また、テキストの中に変数を入れる場合、どこからどこまでか変数名なのかが明確になっていないとうまく処理されないので注意が必要です。

テキスト中に変数名を含めるときには、うまく動いてくれない時があります。このようなときには、{}記一号を使って「これが変数名だ」ということを明記してやります。このようにすれば、問題なく変数を認識してくれます。この{ }記号は、こうした場合の他にも、さまざまな構文などで用いられますので覚えておきましょう。