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