40

二重引用符で囲まれた静的変数をPHPに評価させるにはどうすればよいですか?

私はこのようなことをしたい:

log("self::$CLASS $METHOD entering");

{}の変数値を取得するためにあらゆる種類のコンボを試しましself::$CLASSたが、何も機能しませんでした。私は現在、文字列連結で解決しましたが、入力するのは面倒です:

log(self::$CLASS . " $METHOD entering");
4

9 に答える 9

38

申し訳ありませんが、それはできません。単純な式でのみ機能します。ここを参照してください。

于 2009-08-12T16:11:19.950 に答える
6

残念ながら、これを行う方法はまだありません。{${self::$CLASS}}の内容を返さないため、ここでの回答の 1 つの例は機能しませんがself::$CLASS、名前が の変数の内容を返しますself::$CLASS

myvarを返さない例を次に示しますaaa

$myvar = 'aaa';
self::$CLASS = 'myvar';
echo "{${self::$CLASS}}";
于 2013-09-24T14:24:46.130 に答える
4

あなたの質問に対する答えはわかりませんが、__METHOD__ マジック定数を使用してクラス名とメソッドを表示できます。

于 2009-08-12T15:56:49.840 に答える
-2

連結と一緒に暮らすだけです。 文字列内の変数の補間がいかに非効率的であるかに驚かれることでしょう

これは事前最適化またはマイクロ最適化の傘下に入る可能性がありますが、この例で実際に優雅さが得られるとは思いません。

個人的には、どちらか一方を少しだけ最適化するつもりで、私の選択が「より高速」で「入力しやすい」場合は、「より高速」を選択します。数回入力するだけですが、おそらく何千回も実行されるからです。

于 2009-08-12T16:19:12.837 に答える
-5

はい、これを行うことができます:

log("{${self::$CLASS}} $METHOD entering");
于 2013-08-12T14:47:07.940 に答える