-4

我在 php.net 中遇到过这段代码。

<?php
echo substr('abcdef', 1);     // bcdef
echo substr('abcdef', 1, 3);  // bcd
echo substr('abcdef', 0, 4);  // abcd
echo substr('abcdef', 0, 8);  // abcdef
echo substr('abcdef', -1, 1); // f

// Accessing single characters in a string
// can also be achieved using "square brackets"
$string = 'abcdef';
echo $string[0];                 // a
echo $string[3];                 // d
echo $string[strlen($string)-1]; // f

?>

substr('abcdef',1,3)返回'bcd',最后一个索引是 3,它返回"bcd",如果我substr('abcdef',0,4)返回'abcd'。但与第一个示例相比,我希望substr('abcdef',0,3)返回。'abcd'我在这里想念什么。

substr($string,$start,$last)在 php 中是如何工作的?

编辑:对不起,我认为第三个参数不是长度和超出我理解范围的每个人......由于我的Java背景抱歉。感谢所有评论和回答。

4

3 回答 3

8

substr()不是substr($string, $start, $last)substr($string, $start, $length)。所以substr('abcdef', 0, 4)返回abcd,因为它从 0 (a) 开始,它有 4 个字母。

另外随机注意:echo substr('abcdef', -1, 1);本质上是多余的,因为 -1 的长度仅为 1,因此字符串也可能是:echo substr('abcdef', -1);

于 2013-06-09T06:39:21.313 回答
1

第一个整数表示开始搜索的位置,第二个整数表示长度。在你的情况下 4 个字符(从 0 开始)。

于 2013-06-09T06:40:01.887 回答
0

substr('abcdef',0,3)将给出一个输出abc 要获得abcd你应该使用的输出substr('abcdef',0,4)

substring如果你想要从第一个字符开始的substr('abcdef',start_position,no. of character you want) 任何子字符串,你应该使用 0 作为 start_position。

你可以参考这个link

于 2013-06-09T06:37:21.293 回答