我遇到了 PHP 处理器看起来很奇怪的边缘情况。根据PHP手册:
PHP 中的变量由一个美元符号后跟变量名表示。变量名区分大小写。
变量名称遵循与 PHP 中其他标签相同的规则。有效的变量名称以字母或下划线开头,后跟任意数量的字母、数字或下划线。
我见过的极端情况是紧跟在美元符号后面的字符不是字母或下划线(或其他一些会调用特殊含义的元字符组合,例如第二个美元符号)。这是一个例子:
$someVariable = "This is a $(test of our edge case).";
我可以用语句输出这个变量,并且单词testecho
之前的美元符号显示没有问题(不需要转义)。据我所知,PHP 不会抛出任何错误或警告。所以现在我的问题是:这是处理器语法中的一个极端情况吗?它是一个错误吗?还是我忽略了其他一些解释?
我很清楚,作为一种良好的编程习惯,当想要打印所述字符(或者可以简单地使用单引号字符串)时,应该始终在双引号字符串中转义美元符号。我只是好奇为什么这种情况下不一定需要在美元符号之前转义。