PHP - 在字符串中打印命名空间常量?

时间:2013-04-04 13:59:32

标签: php string constants representation string-interpolation

我有以下测试代码:

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}""${B}""${\B}",但到目前为止,没有运气。

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

1 个答案:

答案 0 :(得分:3)

这不起作用。您可以在双引号字符串中使用$变量,函数或对象方法调用,但不能使用常量。请参阅PHP string parsing documentation。你会发现许多有用的例子。