2022/08/11
PHPのヒアドキュメントが改善!もうインデントは気にしない
タイトルには入れれませんでしたが、意外と知らないシリーズです。
今回はPHPのヒアドキュメントが少しだけ改善されたのでお知らせします!
そもそもヒアドキュメントとは
文字列を変数に入れる時に改行をどう文字に含めるかで困る事があります。
この時に意識せずに改行する出来る書き方がヒアドキュメントになります。
次のような例です。
$str = <<<TEST
こんにちは。
これがヒアドキュメントになります。
改行コード等を入れずに文字を変数入れれます。
TEST;
これをechoすると次のような出力です。
こんにちは。
これがヒアドキュメントになります。
改行コード等を入れずに文字を変数入れれます。
ヒアドキュメントの改善
「そもそもヒアドキュメントとは」に記載された例を見て分かる通り、文字の先頭にインデントが付いてしまっています。(CSSによって見辛かったらすみません)
文字の改行はそのままで良いのですが、必要ないインデントまで入ってしまっています。
PHP7.3〜では、これが改善されました!
次の例を見てみましょう。
$sql = <<<SQL
SELECT
id,
name,
email,
password,
FROM user
WHERE name LIKE '%yamada%'
SQL; // ←終端IDにインデント
何が変わったかと言うと、最後の閉じる部分ですね。
終端ID(SQLと書いてある部分)にインデントを付けています。
こうすることによって、端IDのインデント分を削除して変数に入れてくれます!
echoした結果
SELECT
id,
name,
email,
password,
FROM user
WHERE name LIKE '%yamada%'%
見事にインデントが消えてくれています。
以上になります!
ヒアドキュメントについて気になる方は次のリンクを参照して下さい。
https://www.php.net/manual/ja/language.types.string.php#language.types.string.syntax.heredoc
ヒアドキュメントは私も嫌いでしたが、少し苦手意識が取れました。
皆さんも是非使ってみて下さい。