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