2013-06-09 5 views
-5

나는 php.net에서이 코드를 발견했다.substr 함수는 어떻게 작동합니까?

<?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로 작동합니까?

편집 : 나는 3 PARAM 생각 죄송 온몸이 길이 내 Java 배경 미안 때문에 나의 이해를 넘어 뭔가 ... 아니다. 모든 댓글과 답변에 감사드립니다.

+4

어디에서 $을 (를) 마지막으로 받았습니까? 세 번째 매개 변수는 길이입니다. http://php.net/manual/en/function.substr.php – geoffspear

+0

@Wooble 전적으로 그것을 가지고 있습니다 .... 감사합니다 :) – pinkpanther

+0

'substr'은 [here] (http://php.net /manual/ru/function.substr.php) – neoascetic

답변

5

substr()이 아닌 것은 substr($string, $start, $last)입니다. substr($string, $start, $length)입니다. 따라서 substr('abcdef', 0, 4)은 0 (a)에서 시작하고 4 자로 이동하므로 abcd을 반환합니다.

또한 임의 참고 : echo substr('abcdef', -1, 1); 1의 길이를에만 있기 때문에 -1 본질적으로 중복 그래서 문자열뿐만 아니라 수 있습니다 : echo substr('abcdef', -1);

+0

답변을 수락하실 수 있습니다 감사합니다 +1 – pinkpanther

0

substr('abcdef',0,3) 당신이 첫 번째 문자에서 시작하는 모든 문자열을 원한다면, 당신이 경우 start_position로 0을 사용한다 substr('abcdef',start_position,no. of character you want)substr('abcdef',0,4)

substring 작품을 사용해야합니다 abcd 출력을 얻으려면 abc 의 출력을 제공 할 것입니다.

link을 참조 할 수 있습니다.

+0

@pinkpanther 괜찮습니다. 나는 내 대답을 편집하고 있었어. – TechBytes

1

첫 번째 정수는 어디에서 검색을 시작하는 위치를 알려줍니다, 두 번째는 말한다 길이. 귀하의 경우 4 자 (0에서 시작).

관련 문제