PHPのヒアドキュメントで定数を使う

メモ。

PHPではヒアドキュメント中、

1.変数は展開される

2.定数は展開されない

↓の例だと、定数「MY_NAME」は展開されない。

<?php
define("MY_NAME","田中角栄");
print <<< HTML_PROF
my name is {MY_NAME}.
HTML_PROF;
?>



なので、適当なクラスを作ってnewし、インスタンス変数経由でconstant関数を使う。

<?php
define("MY_NAME","田中角栄");
$def = new DefineParse();
print <<< HTML_PROF
my name is {$def->get('MY_NAME')}.
HTML_PROF;
class DefineParse {
public function get($defineKey){
return constant($defineKey);
}
}
?>
tonogata
tonogata

2件のコメント

  1. 通りすがりです。
    試してみたのですがParse error が発生してしまいます。
    PHP4.Xだからなのでしょうかね〜

  2. 「public」がPHP5からかな?はずせばいけるかもです。
    でもこの方法はdefine使いまくった
    既存のソースを使いまわす際に使った苦し紛れの方法なので、
    1から組むなら他の方法でやった方がいいのかな、と思います。

tonogata へ返信する返信をキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です