【PHP入門者向け】 PHPの文字列リテラルについて知ろう

  • このエントリーをはてなブックマークに追加
  • Pocket

リテラル(literal)は、「文字どおり」「字義どおり」を意味する言葉で、プログラミングにおいては計算結果などが反映される変数と違って「最初からその内容と決めておく」ものとして使われるものである。PHPにおいて文字列をリテラルとして扱うとはどういう事なのかを紹介しよう。

文字列リテラル

PHPにおける文字列リテラル

PHPにおける文字列は、可変長文字列であり、その他のプログラミング言語にあるようなchar型といった「単の一文字」は存在しない。

例えると、文章と単語を区別して扱う必要がないということだ。

文字列リテラルは大きく3つある。

ひとつは、シングルクオートによるもの、もうひとつはダブルクオートによるもの、そして最後にヒアドキュメントによる方法を説明していこう。

シングルクオートによる表現

「‘」によって、文字列を表すことが出来る。

結果は下記のようになる。

ではもう少し実用的な例をみていこう。

いくつかの文字列を結合して出力したい場合があるだろう。

例えば、「PHPレッスン:文字列リテラル」と出力したいとして、下記のようなスクリプトを書いたとする。

結果はこのようになる。

あいにく、「‘」シングルクオートによる文字列リテラル表現では、変数と文字列とは一緒に表示することが出来ない。

シングルクオートはあくまでも、文字列のみか、変数のみか、その2択となる。

では上記のようなことを実現したい場合は、どうすればよいだろうか?

ダブルクオートによる表現

実は、PHPでは「”」ダブルクオートによる文字列リテラルの表現も可能だ。具体的な例をみてみよう。

結果はこのようになる。

さきほどのシングルクオートでは実現できなかった、文字列と変数の一緒の表示が出来た。

見ての通り、ダブルクオートによる文字列リテラルには、シングルクオートにはない下記の機能がある。

  • 文字列中の変数展開
  • エスケープ文字の展開

ヒアドキュメントによる表現

実際の現場では、もっと複雑な文章を出力することになるだろう。

そうした時に、いちいちシングルクオートやダブルクオートで出力させていると、プログラムの記述量が増え、一覧性も悪くなってしまう。

そうした場合に活用できるのがヒアドキュメントと呼ばれる文字列リテラルだ。

結果は下記のようになる。

このプログラムについて説明しよう。

まず、$mydreamという変数に具体的な「夢」についての文章をセットする。

次にEODという文字が2つある。

これがヒアドキュメントで、具体的には、

<<<EOD から EOD;  で囲われた範囲をまるごと、文字列表現としてセットすることが出来る。

今回の例だと、「はじめまして」から「よろしくお願いします。」までだ。

ヒアドキュメントそのものは、出力する機能はないため、その文字列のセットを$myinfoという文字列にセットする。

そして最後にechoにて$myinfoの変数の中身を出力している。

ここでのポイントとしては、「 私の夢は{$mydream}です 」の部分だ。

ダブルクオートのところで、文字列と変数との一緒の出力は「“」ダブルクオートで囲んでいれば展開されて出力されると説明したが、少し注意も必要だ。

 

たとえば、下記のような場合だ。

この場合、出力結果は 白紙 になる。

なぜだろうか?

よく見てみてほしい。

プログラムを作成した本人ならば、分かるかもしれないが、プログラムを解釈する側には、どこまでが変数で、どこからが変数ではない通常の文字列が分からないのだ。

こういう場合は、きちんと解釈してもらえるようにわかりやすくする方法がある。それが「{ }」 で変数を囲むという方法になる。

これでようやく正しく出力された。

ちなみに、ヒアドキュメントを使う場合の注意事項は下記の通り。

  • <<<に続く終端識別子は直前に空白などは含めない
  • 終端識別子を記載したらすぐに改行すること

以上がPHPによる文字列リテラルになる。

まとめ

PHPプログラミングでメッセージを出力する際に、一部に変数を含む文章などを出力するような場面が何度も出てくるだろう。本記事中で紹介したヒアドキュメントなどを活用してみてほしい。

 

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*

ゼロからエンジニアを目指す方へ
短期間でエンジニアになる方法

必要な勉強や技術の最新動向、本当に使えるIT資格、学習に役立つ国からの奨励金などの情報を無料でお届け

資料を見てみる