#### 1. 为什么使用 {} --- 当字符串中存在 $ 时,PHP 引擎将尽可能多的查找字符串作为变量名 为了防止变量名称和字符串中的其他内容混为一体,可以使用 {} 将变量名称作为一个整体使用 错误示例: 如果要在 $string 中使用变量 $name, 下面代码将会抛出错误 (未定义变量: $nameabc) 对于变量 $string ,因为字符串定界符用的是双引号并且字符串中存在 $ 符号,所以 PHP 引擎会从 $ 符号出现的位置往后查找字符串作为变量名,直到 $nameabc 停止,因为逗号不符合变量名称的命名规范,所以到逗号就停止匹配了 ```php $name = '张三'; $string = "$nameabc,你好"; ``` 此时可以使用 {} 来解决上面的问题, {} 可以将变量名称作为一个整体使用 ```php $name = '张三'; $string = "{$name}abc,你好"; ``` 语法形式 ```php ${变量名} 不推荐使用 {$变量名} 推荐使用, PHP 代码规范要求 ``` #### 2. 对字符串的增删改查(很少用,了解即可) --- **注: 此用法从 PHP7.4 起被弃用,可以使用 [] 代替,即: $name[0]** {} 能实现对原字符串的增删改查, 编号 (下标) 从 0 开始 增: 新增下标 10 的位置为 `*`, 下标 3-9 则为空格字符串 ```php $name = 'abc'; $name{10} = '*'; ``` 删: 下标为 1 的位置修改为空格字符串,其实相当于修改 ```php $name = 'abc'; $name{1} = ' '; ``` 改: 修改下标为 1 的位置值 ```php $name = 'abc'; $name{1} = '*'; ``` 查: 获取某个下标的值 ```php $name = 'abc'; echo $name{1}; ```