PHP中的裸字符串是否有合法用途?

Rob*_*ert 2 php arrays string key bare

这个问题让我想到了简单的问题.

当PHP看到一个未用引号括起来的字符串时,它首先检查它是否是常量.如果没有,它只是假设它是一个字符串并继续.所以,例如,如果我有

echo $foo[bar];
Run Code Online (Sandbox Code Playgroud)

如果有一个叫巴恒它使用的数组键,但如果不是那么它把酒吧作为裸字符串,所以它的行为就像

echo $foo["bar"];
Run Code Online (Sandbox Code Playgroud)

如果在将来某个日期添加具有相同名称的常量,则会导致各种问题.

我的问题是,是否存在使用裸字符串实际上有意义的情况?

Pek*_*ica 14

不,我看不到一个有意义的单一实例,而且总是危险的.使用不带引号的字符串应该完全保留以解决常量.我不明白PHP的发明者如何决定引入这种荒谬的行为 - 它使得常量的正确使用几乎不可能(因为如果你试图访问一个尚未定义的常量,PHP将默默地和愚蠢地生成一个字符串)没有任何好处.

  • +1,我同意你Pekka,并且因为PHP足够宽容,可以将裸字符串转换为文字,并不意味着你应养成使用它的习惯. (2认同)