이 글에서는 문자열이 지정한 문자열로 끝나는지 확인하는 사용자 정의 함수를 만드는 방법을 소개합니다. 이 함수는 조건이 일치하면 TRUE를, 일치하지 않으면 FALSE를 반환합니다.
함수 문법
endFunc(str, lastStr)
함수에서 사용되는 매개변수는 다음과 같습니다.
str − 끝부분을 검사할 대상 문자열입니다.
lastStr − 문자열 끝에서 찾고자 하는 텍스트입니다.
예제
다음은 endFunc() 함수를 구현하고 실행해 보는 예제입니다.
<?php
function endFunc($str, $lastString) {
$count = strlen($lastString);
if ($count == 0) {
return true;
}
return (substr($str, -$count) === $lastString);
}
if(endFunc("pqrstuv","rst"))
echo "True!";
else
echo "False!";
?>
실행 결과
False!
코드 설명
함수의 동작 원리를 살펴보면 다음과 같습니다.
strlen()으로 검색할 문자열($lastString)의 길이를 구합니다.검색 문자열의 길이가 0이면 비교할 필요가 없으므로 즉시
true를 반환합니다.substr($str, -$count)는 음수 오프셋을 사용하여 원본 문자열의 뒤에서부터 해당 길이만큼 잘라낸 부분 문자열을 반환합니다.잘라낸 부분 문자열과 검색 문자열을
===(엄격 비교)로 비교하여 결과를 반환합니다.
위 예제에서 "pqrstuv"의 마지막 세 글자는 "tuv"이므로 "rst"와 일치하지 않아 False!가 출력됩니다. 만약 endFunc("pqrstuv", "tuv")처럼 호출했다면 True!가 출력됩니다.
참고: PHP 8 이상에서는 str_ends_with() 활용
PHP 8부터는 별도의 함수를 직접 작성하지 않아도 내장 함수 str_ends_with()로 동일한 기능을 간단히 처리할 수 있습니다.
<?php
if (str_ends_with("pqrstuv", "tuv")) {
echo "True!";
} else {
echo "False!";
}
?>
PHP 7.x 이하 버전을 사용하는 환경이라면 위에서 소개한 endFunc()와 같은 사용자 정의 함수를 활용하는 것이 좋습니다.