PHP 如果在双引号中靠近变量,则不会转义括号
PHP won't escape brackets if near variable in double quote
我正在编写 PHP 代码,其中有很多可变字符串连接,我想使用双引号,如果括号在变量旁边,我无法正确打印它们。
所以,这按预期工作:
$first = 'Ani';
$second = 'ma';
$third = array( 'ing', 'ted', 'tion' );
$variable = "$first$second{$third[2]}";
echo $variable;
>> Animation
但如果我希望字符串中包含括号文字,这就是我得到的结果:
$var1 = 'red';
$var2 = 'blue';
$var3 = 'green';
$variable = "x = {$var1,$var2,$var3}";
echo $variable
>> PHP Parse error: syntax error, unexpected token ",", expecting "->" or "?->" or "{" or "["
换句话说,PHP 正在使用方括号进行变量解析,但我只想按字面意思对待它。当我转义括号时,它会打印但带有转义字符:
$variable = "x = \{$var1,$var2,$var3\}";
echo $variable
>> x = \{red,blue,green\}
我可以使用双引号并在变量旁边正确打印文字括号吗?否则,它会使我的代码变得更加混乱和耗时。
$var1 = 'red';
$var2 = 'blue';
$var3 = 'green';
$variable = "x = {$var1,$var2,$var3}";
echo $variable;
将输出:
x = {$var1,$var2,$var3}
如果您需要以下内容:
x = {red,green,blue}
你不能,“因为{无法转义”。资料来源:https://www.php.net/manual/en/language.types.string.php#language.types.string.parsing.complex
我正在编写 PHP 代码,其中有很多可变字符串连接,我想使用双引号,如果括号在变量旁边,我无法正确打印它们。
所以,这按预期工作:
$first = 'Ani';
$second = 'ma';
$third = array( 'ing', 'ted', 'tion' );
$variable = "$first$second{$third[2]}";
echo $variable;
>> Animation
但如果我希望字符串中包含括号文字,这就是我得到的结果:
$var1 = 'red';
$var2 = 'blue';
$var3 = 'green';
$variable = "x = {$var1,$var2,$var3}";
echo $variable
>> PHP Parse error: syntax error, unexpected token ",", expecting "->" or "?->" or "{" or "["
换句话说,PHP 正在使用方括号进行变量解析,但我只想按字面意思对待它。当我转义括号时,它会打印但带有转义字符:
$variable = "x = \{$var1,$var2,$var3\}";
echo $variable
>> x = \{red,blue,green\}
我可以使用双引号并在变量旁边正确打印文字括号吗?否则,它会使我的代码变得更加混乱和耗时。
$var1 = 'red';
$var2 = 'blue';
$var3 = 'green';
$variable = "x = {$var1,$var2,$var3}";
echo $variable;
将输出:
x = {$var1,$var2,$var3}
如果您需要以下内容:
x = {red,green,blue}
你不能,“因为{无法转义”。资料来源:https://www.php.net/manual/en/language.types.string.php#language.types.string.parsing.complex