PHP의 end() 함수는 배열의 내부 포인터(internal pointer)를 마지막 요소로 이동시키고, 해당 요소의 값을 반환하는 함수입니다. 배열의 첫 번째 요소를 다루는 reset()과 반대되는 역할을 하며, 현재 요소를 반환하는 current()와 함께 자주 사용됩니다.
문법 (Syntax)
end(array $array): mixed
매개변수 (Parameters)
arr − 내부 포인터를 이동시킬 대상 배열입니다. 이 매개변수는 참조(reference)로 전달됩니다.
반환값 (Return Value)
end() 함수는 성공 시 배열의 마지막 요소 값을 반환합니다. 만약 배열이 비어 있으면 FALSE를 반환합니다.
예제 1: 기본 사용법
다음은 end() 함수의 기본적인 사용 예제입니다.
<?php
$os = array('windows', 'mac', 'linux', 'solaris');
echo end($os);
?>출력 결과
solaris
예제 2: 내부 포인터와 함께 활용하기
아래 예제는 current(), next(), end() 함수를 함께 사용하여 배열 내부 포인터가 어떻게 이동하는지 보여줍니다.
<?php
$a = array('one', 'two', 'three', 'four', 'five', 'six');
echo current($a)."\n"; // 현재 요소: one
echo next($a)."\n"; // 다음 요소로 이동: two
echo current($a)."\n"; // 현재 요소: two
echo end($a)."\n"; // 마지막 요소로 이동: six
echo current($a)."\n"; // 현재 요소: six
?>출력 결과
one two two six six
함께 알아두면 좋은 관련 함수들
current() − 내부 포인터가 가리키는 현재 요소의 값을 반환합니다.
next() − 내부 포인터를 다음 요소로 이동시키고 그 값을 반환합니다.
prev() − 내부 포인터를 이전 요소로 이동시키고 그 값을 반환합니다.
reset() − 내부 포인터를 배열의 첫 번째 요소로 이동시킵니다.
key() − 현재 요소의 키(인덱스)를 반환합니다.
주의 사항
end() 함수는 단순히 값을 반환하는 것이 아니라 배열의 내부 포인터를 실제로 변경한다는 점에 유의해야 합니다. 따라서 이후에 current()나 key() 등을 호출하면 마지막 요소를 기준으로 동작하게 됩니다. 또한 빈 배열에 대해 end()를 호출하면 FALSE를 반환하므로, 반환값이 실제 배열 값인지 FALSE인지 구분이 필요한 경우에는 strict comparison(===)을 사용하는 것이 안전합니다.