PHPのヒアドキュメントでは、デフォルトだと定数を展開することができず不便に感じることがある。

今回は独自の関数を定義し、ヒアドキュメント内で定数を展開させる方法を紹介する。

define('CONSTANT','hoge');
$cst = 'cst';

function cst($constant){
    return $constant;
}

まず、関数cstを定義し、変数$cstへ定義した関数名を代入する。
これで準備は完了。

後はヒアドキュメント内で変数$cstを展開すればOK。

$str = <<< EOF
hoge fuga piyo {$cst(CONSTANT)}
EOF;

echo $str;
// hoge fuga piyo hoge

この時、引数に定数名を入れることで関数cstが実行され、定数をヒアドキュメント内に展開することができる。