PHP支持這一點:爲什麼PHP不支持在字符串中使用const擴展const?
$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 通過consts不支持插入花括號語法?似乎它應該...
PHP tokenizer在雙引號中查找'$'。變量是字符串中的主要插值目標,而不是表達式。而'{'只是變量周圍的語法糖,但實際上並不應該在字符串中開始複雜的解釋。它有時被巧妙地濫用來做到這一點,但它確實只適用於變量。這就是爲什麼{常量}不被支持。 – mario 2010-10-29 16:00:57