gpt4 book ai didi

php - 未转义的美元符号不会引发错误; PHP处理边缘情况?

转载 作者:行者123 更新时间:2023-12-04 06:01:29 24 4
gpt4 key购买 nike

我遇到了 PHP 处理器似乎很奇怪的边缘情况。根据PHP手册:

Variables in PHP are represented by a dollar sign followed by the name of the variable. The variable name is case-sensitive.

Variable names follow the same rules as other labels in PHP. A valid variable name starts with a letter or underscore, followed by any number of letters, numbers, or underscores.



我见过的极端情况是美元符号后面的字符不是字母或下划线(或其他一些会调用特殊含义的元字符组合,例如第二个美元符号)。下面是一个例子:
$someVariable = "This is a $(test of our edge case).";

我可以用 echo 输出这个变量语句,并且单词 test 之前的美元符号没有问题(不需要转义)。据我所知,PHP 不会抛出任何错误或警告。所以现在我的问题是:这是处理器语法中的边缘情况吗?这是一个错误吗?或者这是否有我忽略的其他解释?

我很清楚,作为一种良好的编程实践,当人们想要打印所述字符时,应该始终在双引号字符串中转义美元符号(或者可以简单地使用单引号字符串)。我只是好奇为什么这个案例不一定需要在美元符号之前转义。

最佳答案

不,没有错误消息没有错误。 PHP 只会扩展双引号括起来的字符串内的有效变量。

如果您熟悉正则表达式,您可以将其视为 PHP 将双引号字符串的内容与以下表达式进行匹配:

\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

关于php - 未转义的美元符号不会引发错误; PHP处理边缘情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8866750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com