みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

文字列内で定数を使いたいときに手間がかかる

文字列内で定数を使いたいときにこういう手法があります。
$a = function($t){ return $t };
echo "{$a(TEISUU)}";

これをいろんな関数内でも気軽に使いたいのですが、いざやってみると
 ・必要な場所で毎回上記を定義する
 ・ライブラリ関数として別個定義しインクルードしておいて、使いたい関数内でglobal宣言する
 ・$GLOBALSを使う
このようにいずれも余計な手間や見た目が雑になってしまい使い勝手が悪いです。

どの関数内でも手間いらずで「$a(定数)」を使う方法はないでしょうか。

投稿日時 - 2019-01-18 18:42:51

QNo.9579018

すぐに回答ほしいです

質問者が選んだベストアンサー

「$a(定数)」を使う方法ではないのですが、文字列内で定数を用いるという目的を実現するだけであればもっと楽な方法があるのではと考えます。

define("TEISUU", 100);
$str = "foo%%TEISUU%%bar";
$str = str_replace('%%TEISUU%%', TEISUU, $str);
echo $str; // foo100bar

これは定数"TEISUU"の値を入れたい部分に%%TEISUU%%を入れておき、後から置換する方法です。
他にも状況に応じてスマートな方法があると思いますので、一つの方法にこだわらずに別の方法を考えるとよいかもしれません。

投稿日時 - 2019-01-18 22:15:28

補足

ありがとうございます。
今も検索していていろんな方法があるようですが、使うときにシンプルな表現だけで済むやり方はやはり見つかっていません。

投稿日時 - 2019-01-19 11:08:24

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問