PHP で複数行の文字列を扱う方法について

PHP では文字列型として string が存在していますが、その扱いは次の4種類に分かれています。

  • 引用符
  • 二重引用符
  • ヒアドキュメント構文
  • nowdoc 構文(PHP 5.3.0~)

この中で、複数行の文字列を扱う方法については一般的にヒアドキュメントが有名なのでは無いかと思います。

しかし、用途によっては(二重)引用符を利用した場合の方が記述が簡単な場合もあるので、メモしておきます。

目次

引用符、二重引用符

PHP では、この2種類の引用符で囲われた内容を文字列として扱います。

前者は「変数」や「特殊文字(エスケープシーケンス)」を展開せず、後者は展開しますね。

ここでポイントとなるのが、内容に含められる文字は空白や改行文字も対象となることです。

ですので、次のソースは問題なく動作します。

[code lang=’php’] $a = ‘変数です!’;

$var1 = ‘
$a
1つめ
echo だよ。
‘;
echo $var1;

$var2 = ”
$a
2つめ
print だよ。
“;
print($var2);
[/code]

ただし、HTML としての改行(br タグ)は含まれていないので、ブラウザで表示しても下記のように1行に見えます。

[code lang=’text’] $a 1行目 echo だよ。 変数です! 2行目 print だよ。
[/code]

2つめはきちんと変数 $a が展開されていることもわかりますね。

ヒアドキュメント

ヒアドキュメントとは、上記の2つめの表記方法(二重引用符)の別バージョンと考えても良いでしょう。

ですので、次のコードはきちんと動作します。

[code lang=’php’] $var3 =< <<_EOT_ $a 3つめ Heredoc だよ。 _EOT_; print($var3); [/code] 表示は次の通り。 [code lang='text'] 変数です! 3つめ Heredoc だよ。 [/code]

Newdoc
PHP 5.3.0 以降では、Newdoc 表記が追加されました。
引用符として扱うこと以外は、ヒアドキュメントとすべて同じ条件で利用することが可能です。

たとえば次のコードです。

[code lang=’php’] $var4 =< <<'_EOT_' $a 4つめ Newdoc だよ。 _EOT_; print($var4); [/code] 表示は次の通りになるはずです(これだけ未検証)。 [code lang='text'] $a 4つめ Newdoc だよ。 [/code] HTML や SQL を PHP 内部で記述したいぐらいの記述には、ヒアドキュメントで無くても、引用符を使うので十分かもしれませんね。 ※本来入れるべきでは無いなどの話は横に置いておいて・・ * 参考:PHP: 文字列

10年集客し続けられるサイトを、ワードプレスで自作する9つのポイント プレゼント

【最後まで読んでくれたあなたに】

あなたは、24時間365日、自分の代わりに集客し続けてくれるWebサイトを作りたい!と思ったことはありませんか?

私はこれまで500以上のWebサイトの構築と運営のご相談に乗ってきましたが、Webサイトを作ってもうまく集客できない人には、ある一つの特徴があります。

それは、「先を見越してサイトを構築していないこと」です。
Webサイトで集客するためには、構築ではなく「どう運用するか」が重要です。

しかし、重要なポイントを知らずにサイトを自分で構築したり、業者に頼んで作ってもらってしまうと、あとから全く集客に向いていないサイトになっていたということがよく起こります。

そこで今回、期間限定で
『10年集客し続けられるサイトをワードプレスで自作する9つのポイント』
について、過去に相談に乗ってきた具体的な失敗事例と成功事例を元にしてお伝えします。

・ワードプレスを使いこなせるコツを知りたい!
・自分にピッタリのサーバーを撰びたい!
・無料ブログとの違いを知りたい!
・あとで悔しくならない初期設定をしておきたい!
・プラグイン選びの方法を知っておきたい!
・SEO対策をワードプレスで行うポイントを知りたい!
・自分でデザインできる方法を知りたい!

という方は今すぐ無料でダウンロードしてください。

期間限定で、無料公開しています。

※登録後に表示される利用条件に沿ってご利用ください

コメントを残す