정의 및 사용 방법
- PHP 버전
- 4+
strlen() 함수는
주어진 문자열의 길이를 숫자로 반환합니다.
strlen() 함수가 반환하는 문자열의 길이는 바이트 수(in bytes)이며,
멀티바이트 문자열(예: 한글, 일본어, 중국어 등)의 경우 정확한 문자열의 길이를 반환하지 않을 수 있습니다.
이 함수는 영문이나 숫자처럼 단일 바이트 문자로 구성된 문자열의 길이를 확인하는 데 사용합니다.
한글, 일본어, 중국어 등 멀티바이트 문자열의 길이를 확인하려면 mb_strlen() 함수를 사용하세요.
기본 예제
$str_1 = 'abcdef1234';
var_dump(strlen($str_1)); // int(10)
/* 공백도 문자열의 길이에 포함 */
$str_2 = 'abc def';
var_dump(strlen($str_2)); // int(7)
$str_3 = ' abc def ';
var_dump(strlen($str_3)); // int(9)
$str_4 = ' ';
var_dump(strlen($str_4)); // int(1)
/* 빈 문자열 */
$str_5 = '';
var_dump(strlen($str_5)); // int(0)
/* 문자열이 아닌 boolean 타입 */
var_dump(strlen(true)); // int(1)
var_dump(strlen(false)); // int(0)
구문
strlen(string $string): int
매개변수
$string |
길이를 측정하는 문자열입니다. |
|---|
반환 값
바이트 단위(in bytes)의 문자열 길이를 정수로 반환합니다.
주의할 점
strlen() 함수를 사용할 때, 매개변수의 타입에 따라 반환값이 예상과 다르게 동작할 수 있습니다.
매개변수가 문자열이 아닌 boolean 타입일 경우
strlen() 함수는 문자열이 아닌 부울(boolean) 타입의 매개변수에 대해서도 동작합니다.
true는 문자열로 변환했을 때'1'로, 바이트 수는 1입니다.false는 문자열로 변환했을 때 빈 문자열('')이므로, 바이트 수는 0입니다.
$str_1 = true;
var_dump(strlen($str_1)); // int(1)
$str_2 = false;
var_dump(strlen($str_2)); // int(0)
매개변수가 한글처럼 멀티바이트 문자열일 경우
UTF-8 인코딩에서 영어와 숫자 같은 ASCII 문자는 1 byte로 표현되지만, 한글이나 일본어, 중국어 등은 여러 byte를 사용합니다. 이처럼 하나의 문자를 표현하기 위해 2 byte 이상을 사용하는 문자를 multi-byte(멀티바이트) 문자열이라고 합니다.
strlen() 함수가 반환하는 문자열의 길이는 문자 개수가 아니라 바이트 수(in bytes)입니다.
$str = '환영합니다.';
var_dump(strlen($str)); // int(16)
이 예제처럼 멀티바이트 문자열(예: 한글)의 경우 정확한 문자열의 길이를 반환하지 않을 수 있습니다. 한글처럼 멀티바이트 문자열의 길이를 확인하려면 mb_strlen() 함수를 사용하세요.
$str = '환영합니다.';
var_dump(mb_strlen($str)); // int(6)