PHP
ヒアドキュメント

ヒアドキュメントと連想配列

こんなサンプルコードを書いてみた。

<?php

$size = array(
    'height' => 157.5,
    'width' => 77.4,
    'depth' => 7.7
);

echo <<<EOT
The height of "iPhone XS Max" is $size[height] mm.

EOT;
echo <<<EOT
The width of "iPhone XS Max" is ${size["width"]} mm.

EOT;
echo <<<EOT
The depth of "iPhone XS Max" is {$size["depth"]} mm.

EOT;

実行結果は、このように3つのケースで正しく表示できている。
SS_20180914_110910_00.png

このように書くとエラーになる:

echo <<<EOT
The height of "iPhone XS Max" is $size["height"] mm.

EOT;

Parse error: syntax error, unexpected '"', expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)

heightのケースが、個人的にはとても気持ち悪く感じるというか、配列でキーを文字列で与えるときは引用符で括るっていう文法を、そこだけ無視できていることがしっくりこない。
なので私はwidthかdepthのケースで書くことが多い。このブログみたいにカラー文法表示がうまく働かないケースも考慮すると、depthのケース「{$size["depth"]}」が無難なのかもしれない。
PHP: ヒアドキュメントと連想配列 - m6uのエンジニアっぽい日記からの転載)


参考文献
変数のパース - 文字列