MW211 EXIT

devlog
PHP/ヒアドキュメントで定数を使う
2011年11月27日
ヒアドキュメントってのは以下みたいなやつだ。(かなり重宝している)
┌──────────────────────────────────────┐
│echo <<<___HTML___                                                          │
│結果は、{$result}です。                                                     │
│___HTML___;                                                                 │
└──────────────────────────────────────┘

でも、定数だと反応してくれない(この場合「成功」ではなく「RESULT」が表示される)
┌──────────────────────────────────────┐
│define(RESULT, '成功');                                                     │
│echo <<<___HTML___                                                          │
│結果は、{RESULT}です。                                                      │
│___HTML___;                                                                 │
└──────────────────────────────────────┘

ま、一旦変数に代入すりゃ回避できるのだが…。
┌──────────────────────────────────────┐
│$result = RESULT;                                                           │
│echo <<<___HTML___                                                          │
│結果は、{$result}です。                                                     │
│___HTML___;                                                                 │
└──────────────────────────────────────┘
なんか一気にやってしまいたい。

そこで、サブメソッドを使う方法。
┌──────────────────────────────────────┐
│echo <<<___HTML___                                                          │
│結果は、{$this->def(RESULT)}です。                                          │
│___HTML___;                                                                 │
│- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - │
│private function def($define) {                                             │
│  return $define;                                                           │
│}                                                                           │
└──────────────────────────────────────┘
「return $define;」の部分は「return constant($define);」ならより丁寧か。

それじゃ、静的メソッドにしちゃって
どこからでも簡単に使えるようにしたらいいじゃん、と思ってやってみた。
┌──────────────────────────────────────┐
│echo <<<___HTML___                                                          │
│結果は、{Edit::def(RESULT)}です。                                           │
│___HTML___;                                                                 │
└──────────────────────────────────────┘
答えはNG。ダメでした。
先頭の「$」が肝らしく、これがないと反応してくれない。
分類:PHP