【发布时间】:2011-05-02 11:47:35
【问题描述】:
PHP 支持这个:
$z = 5;
$str = "z is $z"; // result: "z is 5"
它支持这一点:
$c = new StdClass();
$c->x = 9;
$str = "x is {$c->x}"; // result: "x is 9"
但它不支持这个:
class abc
{
const n = 2;
}
$str = "x is {abc::n}"; // result: "x is {abc::n}"
为什么 PHP 不 支持通过花括号语法插入 const?好像应该...
【问题讨论】:
-
PHP 分词器在双引号中查找
$。变量是字符串中的主要插值目标,而不是表达式。{只是变量周围的语法糖,但实际上不应该在字符串中开始复杂的解释。有时会巧妙地滥用它来做到这一点,但它实际上只适用于变量。这就是不支持 {constants} 的原因。
标签: php constants curly-braces