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

Output:
h

而预期的输出是

"Nuthing"

回显“Nuthing”的格式应该是什么?

4

2 回答 2

6

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

编辑

手册中的强制性报价:

按字符访问和修改字符串

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

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

编辑#2

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

正如我在问题中给出的那样,我将如何连接变量的名称?

$fr = "hammad"; 
$frhammad = "nuthing"; 
$varName = 'fr'.$fr;
echo $$varName; 

或者

$fr = "hammad";
$frhammad = "nuthing";
echo ${'fr'.$fr};
于 2012-04-11T06:40:31.437 回答
0

变量-变量插值的正确语法是:

$fr = "hammad";
$frhammad = "nuthing";
echo ${fr.$fr};
于 2012-04-11T06:43:33.853 回答