ヒアドキュメント内で関数を使うには

  • 投稿日:
  • by
  • カテゴリ:
  • ハッシュタグ:

Perlだと出来るらしいのですが、PHPではダメみたいです。

見積書なんかだと、千円単位で小数点以下一位まで表示、さらに桁区切りもしたりします。 そういうときは、number_format関数を使います。

ところが小数点はまだいいのですが、桁区切りが入ると数字ではなく文字列になってしまうので、そのあと計算が出来なくなってしまうんですよね。
なので、最終的に表示する段階でnumber_format関数を使いたいのですが、ヒアドキュメントの中だとNGなので困っていたのです。

しかし! 世の中にはエライ人がいるもので、クラスにしちゃえばOKなのだとか。
クラスが何かよく分かっていませんが、さっそくやってみました。

// 桁区切りと小数点揃え
class NumberFormat {
public function enc($output, $point=0){
return number_format($output, $point);
}
}

これで、ヒアドキュメントの中で、

$NF = new NumberFormat();

$HTML <<< EOD

{$NF->enc($A,1)}


EOD;

なんて書くと、$Aが桁区切り&小数点以下一位で表示されます。 素晴らしい!
ちなみにこのクラスはいろんなファイルで使うので、MySQLに接続するために require_once で読み込んでいるPHPファイルに入れておきました。