Strings substr

(PHP 4, PHP 5, PHP 7, PHP 8)

substr — 문자열의 일부 반환


설명

substr(string $string, int $offset, ?int $length = null): string

offsetlength 매개변수로 지정된 string 부분을 반환합니다.


매개변수

string
입력 문자열입니다.
offset
offset이 음수가 아닌 경우 반환된 문자열은 stringoffset 위치에서 시작하여 0부터 계산합니다. 예를 들어, 문자열 'abcdef'에서 위치 0의 문자는 'a'이고 위치 2의 문자는 'c'입니다.

offset이 음수이면 반환된 문자열은 string 끝에서 offset' 문자에서 시작됩니다.

stringoffset 문자 길이보다 작으면 빈 문자열이 반환됩니다.

예제 #1 음수 offset 사용

                       
<?php
$rest = substr("abcdef", -1);    // returns "f"
$rest = substr("abcdef", -2);    // returns "ef"
$rest = substr("abcdef", -3, 1); // returns "d"
?>
                       
                     
length
length가 지정되고 양수이면 반환된 문자열에는 offset에서 시작하는 최대 length의 문자가 포함됩니다(string 길이에 따라 다름).

length가 지정되고 음수이면 string 끝에서 많은 문자가 생략됩니다(offset이 음수일 때 시작 위치가 계산된 후). offset이 이 잘림 또는 그 이상 위치를 나타내는 경우 빈 문자열이 반환됩니다.

length가 지정되고 0이면 빈 문자열이 반환됩니다.

length가 생략되거나 null이면 offset에서 시작하여 문자열 끝까지 부분 문자열이 반환됩니다.

예제 #2 음수 length 사용

                       
<?php
$rest = substr("abcdef", 0, -1);  // returns "abcde"
$rest = substr("abcdef", 2, -1);  // returns "cde"
$rest = substr("abcdef", 4, -4);  // returns ""; prior to PHP 8.0.0, false was returned
$rest = substr("abcdef", -3, -1); // returns "de"
?>
                       
                     

반환 값

string의 추출된 부분 또는 빈 문자열을 반환합니다.


변경 로그

버전 설명
8.0.0 length는 이제 nullable입니다. length가 명시적으로 null로 설정되면 함수는 이전에 빈 문자열을 반환했을 때 문자열 끝에서 끝나는 부분 문자열을 반환합니다.
8.0.0 이 함수는 이전에 false를 반환한 빈 문자열을 반환합니다.

Examples

예제 #3 기본 substr() 사용법

                  
<?php
echo substr('abcdef', 1);     // bcdef
echo substr("abcdef", 1, null); // bcdef; prior to PHP 8.0.0, empty string was returned
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

?>
                  
                

예제 #4 substr() 캐스팅 동작

                  
<?php
class apple {
    public function __toString() {
        return "green";
    }
}

echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL;
echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL;
echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL;
echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL;
echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL;
echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL;
echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL;
?>
                  
                

위의 예는 다음을 출력합니다.

1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) ''
6) ''
7) '1200'
                

예제 #5 잘못된 문자 범위

유효하지 않은 문자 범위가 요청되면 substr()은 PHP 8.0.0부터 빈 문자열을 반환합니다. 이전에는 false가 대신 반환되었습니다.

                  
<?php
var_dump(substr('a', 2));
?>
                  
                

PHP 8에서 위 예제의 출력:

string(0) ""
]
                

PHP 7에서 위 예제의 출력:

bool(false)
                

기타