麻烦使用PHP复杂(卷曲)语法与静态变量

时间:2017-12-27 23:28:07

标签: php

我正在尝试使用PHP卷曲字符串语法来提取一些静态变量。这是一个快速测试课程:

class asdf{
    public static $variable = 'foo@';

    public static function getValue() {
        return "{asdf::$variable}bar.com";
    }
}

我尝试了几种变体,其中一些(如"${asdf::$variable}")将结果作为字符串返回给我,然后将其作为查找进行解析。所以,我知道有些东西主要起作用。

对于启发,当我调用该函数时,我期待像'foo@bar.com'这样的东西。

我希望这是一个语法问题,但我在requests找不到任何有用的东西。或许这是一个缺陷,因为我知道许多人尽可能地避免静力学。

1 个答案:

答案 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';
    }
}