PHPのヒアドキュメントの罠

最近ひたすら労働に明け暮れておりまともに遊べておりません。そろそろ遊ばないかなと売っちゃったスイッチでも買いなおそうかな。

ヒアドキュメントってご存知でしょうか?詳しくは→Qiita – PHP ヒアドキュメントの使いかた

端的に言うと、

echo <<< EOF
hogehoge~
EOF;

って書くと改行も記号も何もかも気にせずに出力できる便利アイテムですね。

EOFがIDと呼ばれるもので、これで囲われた部分が出力されるわけですが…罠があります。

というのも文字列の終わりを告げる終端IDの前後に文字が入ってはいけないというものがあります。(セミコロンは別)

今回関数の中にこれを使用していたため…

function my_func(){
    echo <<< EOF
        エラーが出ます…
    EOF; //ここでインデントのスペースによるエラー
}

エディタの自動整形によりスペースが入ってしまうためエラーを引き起こしました。

しかもこれが引き金で500エラーになったため、原因の特定が困難を極めました。つらたにえん…