我使用 php 的 str_replace 函数来替换一些文本。下面的例子。
str_replace("{x+{\$v}}", "{x-{\$v}}", $this->introtext);
str_replace('{x+{\$v}}', '{x-{\$v}}', $this->introtext);
在第一种情况下,它替换文本,但在第二种情况下,它没有这样做。两者有什么区别?
我使用 php 的 str_replace 函数来替换一些文本。下面的例子。
str_replace("{x+{\$v}}", "{x-{\$v}}", $this->introtext);
str_replace('{x+{\$v}}', '{x-{\$v}}', $this->introtext);
在第一种情况下,它替换文本,但在第二种情况下,它没有这样做。两者有什么区别?
和之间有区别。去掉里面的单引号字符串。'
"
\
编辑:为了澄清,双引号字符串会进行一些扩展(请参阅链接),而单引号则不会。$
需要\
在双引号字符串中转义,但不能在单引号字符串中转义。在后一种情况下,它实际上会导致\$
.
美元符号和花括号在双引号字符串中具有特殊含义。$
用于将变量中的内容直接放入字符串中。{}
用于包装 PHP 变量,以防它们的含义不明确。
例如"$hello"
,将变量的内容$hello
放入字符串中,而"{$hell}o"
将变量的内容$hell
放入字符串中,后跟文字字母 o。
单引号根本没有这个(为了简单起见,在引用更复杂的字符串时通常更可取)。'{$hell}o'
包含实际字符的字符串也是如此{$hell}o
。
有点不清楚您要替换的确切字符串。{x+$v}
用{x-$v}
then替换文字:
str_replace('{x+$v}', '{x-$v}', $this->introtext);