我正在尝试使用PHP卷曲字符串语法来提取一些静态变量。这是一个快速测试课程:
class asdf{
public static $variable = 'foo@';
public static function getValue() {
return "{asdf::$variable}bar.com";
}
}
我尝试了几种变体,其中一些(如"${asdf::$variable}"
)将结果作为字符串返回给我,然后将其作为查找进行解析。所以,我知道有些东西主要起作用。
对于启发,当我调用该函数时,我期待像'foo@bar.com'这样的东西。
我希望这是一个语法问题,但我在requests找不到任何有用的东西。或许这是一个缺陷,因为我知道许多人尽可能地避免静力学。
答案 0 :(得分:5)
你想要的只是possible。
函数,方法调用,静态类变量和类常量 从PHP 5开始,{$}内部工作。但是,访问的值将是 解释为字符串范围内变量的名称 被定义为。使用单个花括号({})将无法访问 函数或方法的返回值或类的值 常量或静态类变量。
最简单的方法是将var访问权限移到字符串之外。
class asdf{
public static $variable = 'foo@';
public static function getValue() {
return asdf::$variable . 'bar.com';
}
}
这样做,如果需要
,甚至可以使用变量var语法class asdf{
public static $variable = 'foo@';
public static function getValue($var = "variable") {
return asdf::$$var . 'bar.com';
}
}