为什么这只是回应PHP中的第一个字符?

Ham*_*mad -1 php variables

$fr = "hammad";
$frhammad = "nuthing";
echo $fr{$fr};

Output:
h
Run Code Online (Sandbox Code Playgroud)

而预期的产出是

"Nuthing"

回应"Nuthing"的格式应该是什么?

Mar*_*ker 6

因为$ x {$ n}是将字符串$ x视为字符数组的标准语法,其中$ n是该aray中字符的数字索引位置.在你的情况下,索引位置由$ fr标识,这是一个非数字字符串,因此PHP的松散类型将其转换为整数0,因此回显位置0处的字符...字符串的第一个字符

编辑

手册中的强制性引用:

字符串访问和按字符修改

通过使用方形数组括号在字符串后面指定所需字符的从零开始的偏移量,可以访问和修改字符串中的字符,如$ str [42].将字符串视为用于此目的的字符数组.当您想要提取或替换多个字符时,可以使用函数substr()和substr_replace().

注意:为了相同的目的,也可以使用大括号访问字符串,如$ str {42}.

编辑#2

要从评论中回答您的最新问题:

我如何连接变量的名称,正如我在其中提出的那样?

$fr = "hammad"; 
$frhammad = "nuthing"; 
$varName = 'fr'.$fr;
echo $$varName; 
Run Code Online (Sandbox Code Playgroud)

要么

$fr = "hammad";
$frhammad = "nuthing";
echo ${'fr'.$fr};
Run Code Online (Sandbox Code Playgroud)