PHP-为什么这一行代码不需要转义引号

我正在关注PHP教程,并且遇到了这行代码

redirect_to("manage_content.php?subject={$current_subject["id"]}");

令我感到惊讶的是,这种方法无需在方括号内的“ id”周围转义.

但是我不明白为什么.有人知道吗?

解决方法:

当用大括号{}包裹变量时,PHP解析器知道其中的任何内容都是变量,并且不会像其余字符串一样解析它!

这仅适用于双引号中的字符串-单引号字符串是按面值获取的,因此必须对其进行转义:

$str = 'My cool string! {$array[\'key\']}';

虽然您的示例没有.

因此,最佳做法是将静态字符串放在单引号中-这是一种微优化,但是从技术上讲它要快一点,因为PHP解析器不必遍历字符串!

上一篇:Rust 及其包管理Cargo的安装使用


下一篇:P1004 [NOIP2000 提高组] 方格取数