php中复杂字符串的字符串长度

php中复杂字符串的字符串长度,php,string,Php,String,我有两条像这样的线 $text = 'Abcdef'; $text[7] = 'Ghijk'; 当我将$text的长度 echo strlen($text); 答案是8。有谁能描述一下它是怎样的吗在索引位置7添加“G”。因此,当您调用echo strlen($text)时,结果将是8,因为PHP对字符串使用0索引寻址 为了更深入地理解这一点,请考虑下面的代码示例: $text = 'Abcdef'; echo($text . ' ' . strlen($text) . '<br /&g

我有两条像这样的线

$text = 'Abcdef';
$text[7] = 'Ghijk';
当我将
$text
的长度

echo strlen($text);

答案是
8
。有谁能描述一下它是怎样的吗在索引位置7添加“G”。因此,当您调用echo strlen($text)时,结果将是8,因为PHP对字符串使用0索引寻址

为了更深入地理解这一点,请考虑下面的代码示例:

$text = 'Abcdef';
echo($text . ' ' . strlen($text) . '<br />');
$text[7] = 'Ghijk';
echo($text . ' ' . strlen($text) . '<br />');
echo($text[7]);

点是行
$text[7]=“Ghijk”
只添加了“G”。

$text[7]=“Ghijk”在索引位置7添加“G”。因此,当您调用echo strlen($text)时,结果将是8,因为PHP对字符串使用0索引寻址

为了更深入地理解这一点,请考虑下面的代码示例:

$text = 'Abcdef';
echo($text . ' ' . strlen($text) . '<br />');
$text[7] = 'Ghijk';
echo($text . ' ' . strlen($text) . '<br />');
echo($text[7]);

点是行
$text[7]=“Ghijk”
只添加了“G”。

在PHP中,您可以访问字符串中的字符,就像访问数组中的项目一样。因此,
$text[7]='Ghijk'
添加到第8位的
$text
chracter'G'(从零到七)


在PHP中,您可以访问字符串中的字符,就像访问数组中的项目一样。因此,
$text[7]='Ghijk'
添加到第8位的
$text
chracter'G'(从零到七)


字符串在内部实现为字符数组。当您执行类似于
$text[7]=“Ghijk”的操作时它应用新字符串中的第一个字符(作为字符数组),即“G”到原始字符串中的第7位,字符串中的第6位为空。因此,它的长度为8个字符


字符是0=>'A'6=>'7=>'G'

字符串在内部实现为字符数组。当您执行类似于
$text[7]=“Ghijk”的操作时它应用新字符串中的第一个字符(作为字符数组),即“G”到原始字符串中的第7位,字符串中的第6位为空。因此,它的长度为8个字符


字符是0=>'A'6=>'7=>'G'

举一个简单的例子来看看会发生什么:

$text = 'a';
$text[2] = 'boo'; // now $text is "a b"
当PHP看到我们正在访问长度为1的字符串的索引
2
(只有有效索引为0)时,它通过添加两个空格来扩展字符串,从而使字符串
'a'


接下来,索引运算符
[]
处理字符串中的字符。因此,您的第二条语句将第三个字符替换为a
b
,从而为您提供了
a b

,请举一个简单的示例,看看会发生什么:

$text = 'a';
$text[2] = 'boo'; // now $text is "a b"
当PHP看到我们正在访问长度为1的字符串的索引
2
(只有有效索引为0)时,它通过添加两个空格来扩展字符串,从而使字符串
'a'


接下来,索引运算符
[]
处理字符串中的字符。因此,您的第二条语句将第三个字符替换为a
b
,使您在
$text[7]='Ghijk'之后尝试
echo$text
这行。它返回的是什么?我在这一行之后发出了回声。结果是两行。在
$text[7]
之前是6,但在
$text[7]
之后是8。在
$text[7]='Ghijk'之后尝试
回显$text
这行。它返回的是什么?我在这一行之后发出了回声。结果是两行。在
$text[7]
之前是6,但在
$text[7]
之后是8。这很奇怪吗?即使它将$text视为数组,那么它也应该添加整个sting,不仅是GT,这很奇怪吗?即使它将$text视为数组,那么它也应该添加整个sting,不仅是GT,这很奇怪吗?即使它将$text视为数组,它也应该添加整个sting,而不仅仅是GIt的字符数组,而不是字符串数组-当添加“G”时,数组长度(strlen)是8.PHP,IMO在这里太宽松了<代码>$text[7]=“Ghijk”应该失败,而不是只默默地添加“G”而忽略其余部分。这是奇怪的吗?即使它将$text视为数组,它也应该添加整个sting,而不仅仅是GIt的字符数组,而不是字符串数组-当添加“G”时,数组长度(strlen)是8.PHP,IMO在这里太宽松了<代码>$text[7]=“Ghijk”应该失败,而不是只默默地添加“G”而忽略其余部分。它正在创建第7个空格字符作为自己的?如果我们给
$text[8]='Ghijkl',那么答案应该是
9`?它正在创建第7个空格字符作为自己的?如果我们给
$text[8]='Ghijkl',那么答案应该是
9`?