strlen()
함수의 정의 및 사용법
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 타입 */
$str_6 = true;
var_dump(strlen($str_6)); // int(1)
$str_7 = false;
var_dump(strlen($str_7)); // int(0)
/* null */
$str_8 = null;
var_dump(strlen($str_8)); // int(0)
이 함수가 반환하는 문자열의 길이는 바이트 수(in bytes)이며,
멀티바이트 문자열(예: 한글)의 경우 정확한 문자열의 길이를 반환하지 않을 수 있습니다.
한글처럼 멀티바이트 문자열의 길이를 확인하려면 mb_strlen()
함수를 사용하세요.
strlen()
함수의 형식은 다음과 같습니다.
구문
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)
매개변수가 문자열이 아닌 null
일 경우
strlen()
함수는 문자열이 아닌 null
값의 매개변수에 대해서도 동작합니다.
null
은 문자열로 변환했을 때 빈 문자열(''
)이므로, 바이트 수는 0입니다.
$str = null;
var_dump(strlen($str)); // int(0)
매개변수가 한글처럼 멀티바이트 문자열일 경우
영어, 숫자 등은 1byte이지만, 한글이나 중국어등은 2byte입니다. 2byte이상의 바이트로 표현되는 것을 "multi-byte(멀티바이트)"라고 합니다.
strlen()
함수가 반환하는 문자열의 길이는 문자 개수가 아니라 바이트 수(in bytes)입니다.
$str = '환영합니다.';
var_dump(strlen($str)); // int(16)
이 예제처럼 멀티바이트 문자열(예: 한글)의 경우 정확한 문자열의 길이를 반환하지 않을 수 있습니다. 한글처럼 멀티바이트 문자열의 길이를 확인하려면 mb_strlen()
함수를 사용하세요.
$str = '환영합니다.';
var_dump(mb_strlen($str)); // int(6)