3

我有以下测试代码:

namespace Test {
    const ONE = 50;

    class A {
        const TWO = 5;

        public function pA($string) {
            return $string;
        }
    }

    $a = new A();
    print $a->pA($a::TWO);
    print "This is a string: {$a->pA($a::TWO)}";
    print "This is a namespace constant: " . ONE;
    print "This is a namespace constant: " . \Test\ONE;
}

所有这些示例都有效,但这不是我想要的。

我可以使用字符串组合来表示前两个示例中的常量吗?我已经尝试了很多组合,比如"${\Test\B}"or "${B}"or"${\B}"但是,到目前为止,没有运气。

也许这是不可能的,我做得过火了,但无论如何......有没有办法做到这一点?

4

1 回答 1

3

这行不通。您可以在双引号字符串中使用 $ 变量、函数或对象方法调用,但不能使用常量。请参阅 PHP字符串解析文档。你会发现很多有用的例子。

于 2013-04-04T14:05:21.453 回答