【PHP】ヒアドキュメントとナウドキュメントと変数の展開

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【PHP】ヒアドキュメントとナウドキュメントと変数の展開

2023-8-7 |

PHPのヒアドキュメントとナウドキュメントと変数の展開についてメモしたい!

デバッグの時とかめちゃ長いクエリを直接書く時に便利。

概要

今回の記事では、PHPのヒアドキュメントとナウドキュメントと変数の展開についてメモを掲載する。

環境

  • PHP 8.1.2

メモ

ヒアドキュメントとナウドキュメントとそれぞれの変数の展開についてメモ。

ヒアドキュメントと変数の展開

ヒアドキュメントを使うと複数行の文字列を処理できる。<<<EODEOD;で囲む感じ。

<?php
$str = <<<EOD
select id, name, age
from employee
where age > 30
EOD;
?>

ヒアドキュメントの中で変数を展開する。

<?php
$age = 30
$str = <<<EOD
select id, name, age
from employee
where age > $age
EOD;
?>

echo $str;

出力例。

select id, name, age
from employee
where age > 30

変数名の境界を指定する必要がある場合は、{$}で囲む感じ。

<?php
$age = 30
$str = <<<EOD
select id, name, age
from employee
where age > {$age}
EOD;
?>

ナウドキュメントと変数の展開

ナウドキュメントでも複数行の文字列を処理できるが、変数名は展開されない。<<<'EOD'EOD;で囲む感じ。(開始のEDOをシングルクォーテーションで囲むみたいな)

<?php
$age = 30
$str = <<<'EOD'
select id, name, age
from employee
where age > $age
EOD;
?>

echo $str;

出力例。

select id, name, age
from employee
where age > $age

変数名$ageがそのまま出力される。

まとめ(感想文)

用途によって使い分けるんだ!