双引号中的PHP静态变量

Chr*_*ris 29 php variables quotes double static

如何让PHP在双引号中评估静态变量?

我想做这样的事情:

log("self::$CLASS $METHOD entering");
Run Code Online (Sandbox Code Playgroud)

我已经尝试了各种{}组合来获得self :: $ CLASS的变量值,但没有任何效果.我目前已经解决了字符串连接问题,但输入时很难:

log(self::$CLASS . " $METHOD entering");
Run Code Online (Sandbox Code Playgroud)

Ele*_*tro 25

对不起,你做不到.它只适用于简单的表达式.看到这里.


Szc*_*ski 8

使用存储在变量中的匿名标识函数。这样您将$立即获得{

$I = function($v) { return $v; }; $interpolated = "Doing {$I(self::FOO)} with {$I(self::BAR)}";

(我在本例中使用类常量,但这也适用于静态变量)。


mic*_*.cz 5

不幸的是,还没有办法如何做到这一点.这里的答案之一中的示例将不起作用,因为{${self::$CLASS}}不会返回内容self::$CLASS,但会返回名称中的变量的内容self::$CLASS.

这是一个不返回的示例myvar,但是aaa:

$myvar = 'aaa';
self::$CLASS = 'myvar';
echo "{${self::$CLASS}}";
Run Code Online (Sandbox Code Playgroud)