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

1pt   2018-09-14 17:35
IT技術情報局

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

<?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つのケースで正しく表示できている。
68747470733a2f2f71696974612d696d6167652d

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

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のエンジニアっぽい日記からの転載)


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

Source: php

   ITアンテナトップページへ
情報処理/ITの話題が沢山。