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

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

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

文字列リテラル

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

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

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

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

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

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

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

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

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

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

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

結果はこのようになる。

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

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

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

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

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

結果はこのようになる。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

なぜだろうか?

よく見てみてほしい。

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

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

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

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

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

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

まとめ

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

 

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

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

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リスキルテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する