【PHP入門者向け】 文字列の中の変数展開についてまとめました

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

PHPで文字列を画面に表示させる際には、その内容に変数を使用することができる。文字列に対してどのように変数を差し込んでいくのかを紹介していこう。

PHPにおける文字列の中の変数展開について

PHPにおける文字列の変数展開とは、すなわち、文中における変数の値出力のことだ。具体的な方法から示していこう。

ダブルクオートを使った文字列展開

「“」ダブルクオートによって、文字列の中で変数を展開することが出来る。

まずは $str という名前の変数を宣言して文字列を代入し、それを表示させてみよう。

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

見事に $str という変数の中に値が文字列中に出力された。

PHPには同じような文字列を定義する方法として、「‘」シングルクオートによる方法がある。しかしこちらの方法では、文字列中の展開は出来ないので要注意である。あくまでも、単一。たとえば、変数だけ、とか文字列だけ、などの場合にのみ対応できる。念のため確認しておこう。

先ほどの例とほぼ同じだが、最終的に出力するecho文を「’」シングルクオートによる記法に変更した。

結果はこのようになる。

$strがそのまま表示されてしまった。

つまり「’」シングルクオートによる記法では、変数展開がされなかったことが分かる。よって、文字列中に変数展開したい場合は、「“」ダブルクオートによる方法で行う。

ダブルクオートを使う場合の注意

ダブルクオートによる変数展開をする場合に気をつけたいのが下記のようなケースである。

この場合、出力結果は何もない「白紙」になる。

白紙とは、PHPでいうところのプログラムのエラーを意味する。つまり、プログラムとして何か不備があり、PHPとしては不完全な結果を表している。

今回のケースに限らず、PHPがプログラムをうまく処理出来なかった場合は、このように「白紙」画面となるため、PHPプログラマの間ではあるあるな話であり、最も恐れている事象でもある。

白紙の原因を探ってみよう

恐れてばかりでもいられないので、原因を考えてみよう。なぜ、今回はこのような結果になったのだろうか?

下記の部分をよく見てみてほしい。

プログラムを作成した本人ならば分かるかもしれないが、この行を見る限り、プログラムを解釈する側には、どこまでが変数で、どこからが通常の文字列が分からないのだ。$s という変数かもしれないし、$strder という変数かもしれない、そんな風に読み取れはしないだろうか?人間にも判別が付かないのだから、PHPではなおさらだ。

ここで行うべきは、どこまでが変数でどこからが通常の文字列かを示すことだ。こういう場合は、きちんと解釈してもらえるようにわかりやすくする方法がある。

それが「{ }」 で変数を囲むという方法になる。下記を見て欲しい。

これでようやく出力が確認できる。

このようにすることで、変数を明確に示すことが出来る。今回のようなケースに限らず、{}による記法は、日常的に心がけるのがよいだろう。

まとめ

PHPプログラムで文字列を表示する際に、定型文の中にある特定の部分を変数にした上で実行結果に応じてその内容を変えるというような事はよくあるだろう。

今回はその方法と表記の際の注意点を解説した。

変数を1つだけでなく2つ、3つと増やしたり、文字列を複数行にしてみたり、など応用してみよう。

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

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

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

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

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

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

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


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


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


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


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


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

SNSでもご購読できます。

コメントを残す

*

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

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

IT講師に応募する