- ベストアンサー
文字列内で定数を使いたいときに手間がかかる
文字列内で定数を使いたいときにこういう手法があります。 $a = function($t){ return $t }; echo "{$a(TEISUU)}"; これをいろんな関数内でも気軽に使いたいのですが、いざやってみると ・必要な場所で毎回上記を定義する ・ライブラリ関数として別個定義しインクルードしておいて、使いたい関数内でglobal宣言する ・$GLOBALSを使う このようにいずれも余計な手間や見た目が雑になってしまい使い勝手が悪いです。 どの関数内でも手間いらずで「$a(定数)」を使う方法はないでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
「$a(定数)」を使う方法ではないのですが、文字列内で定数を用いるという目的を実現するだけであればもっと楽な方法があるのではと考えます。 define("TEISUU", 100); $str = "foo%%TEISUU%%bar"; $str = str_replace('%%TEISUU%%', TEISUU, $str); echo $str; // foo100bar これは定数"TEISUU"の値を入れたい部分に%%TEISUU%%を入れておき、後から置換する方法です。 他にも状況に応じてスマートな方法があると思いますので、一つの方法にこだわらずに別の方法を考えるとよいかもしれません。
補足
ありがとうございます。 今も検索していていろんな方法があるようですが、使うときにシンプルな表現だけで済むやり方はやはり見つかっていません。