我正在关注PHP教程,并且遇到了这行代码
redirect_to("manage_content.php?subject={$current_subject["id"]}");
令我感到惊讶的是,这种方法无需在方括号内的“ id”周围转义.
但是我不明白为什么.有人知道吗?
解决方法:
当用大括号{}包裹变量时,PHP解析器知道其中的任何内容都是变量,并且不会像其余字符串一样解析它!
这仅适用于双引号中的字符串-单引号字符串是按面值获取的,因此必须对其进行转义:
$str = 'My cool string! {$array[\'key\']}';
虽然您的示例没有.
因此,最佳做法是将静态字符串放在单引号中-这是一种微优化,但是从技术上讲它要快一点,因为PHP解析器不必遍历字符串!