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

时间:2012-04-11 06:36:43

标签: php variables

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

Output:
h

而预期的产出是

"Nuthing"

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

2 个答案:

答案 0 :(得分:6)

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

修改

手册中的强制性引用:

按字符串访问和修改字符串

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

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

编辑#2

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

  

我如何连接变量的名称,就像我在其中给出的那样   问题

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

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

答案 1 :(得分:0)

变量插值的正确语法是:

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