현재 위치: > 최신 기사 목록> count () -1 대신 end ()를 사용하는 효율 비교

count () -1 대신 end ()를 사용하는 효율 비교

M66 2025-06-02

PHP 프로그래밍에서 end ()count () -1은 종종 배열의 마지막 요소에 액세스하는 데 사용됩니다. 두 사람은 기능적으로 유사하지만 성능 차이는 종종 간과됩니다. 이 기사는 특정 코드 예제를 통해 두 가지 방법 간의 효율 차이를 분석하고 많은 경우 end () 가 더 효율적인 이유를 보여줍니다.

1. end () 함수의 작동 방식

PHP의 end () 함수는 배열의 내부 포인터를 배열의 마지막 요소에 가리키고 해당 요소의 값을 반환하는 데 사용됩니다. 매우 간단하며 배열에서 추가 계산이 필요하지 않습니다.

 $array = [10, 20, 30, 40, 50];
$lastElement = end($array);
echo $lastElement;  // 산출 50

2. COUNT () -1 작동 방식

한편, COUNT () 함수를 사용하면 배열의 총 길이를 얻은 다음 Count () -1을 통해 배열의 마지막 요소의 인덱스를 얻을 수 있습니다. 이러한 방법에는 배열에 대한 두 개의 호출이 필요합니다. 하나는 배열의 길이를 가져오고, 다른 하나는 배열 인덱스를 통해 요소에 액세스합니다.

 $array = [10, 20, 30, 40, 50];
$lastElement = $array[count($array) - 1];
echo $lastElement;  // 산출 50

3. 성능 비교

두 방법의 성능 차이를 분석 해 봅시다.

end () 성능

end () 함수의 주요 장점은 내부 포인터에서 작동한다는 것입니다. end ()가 호출되면 PHP는 단순히 내부 포인터를 배열의 마지막 요소로 이동하고 해당 요소의 값을 반환합니다. 이 작업은 대부분의 경우 일정한 시간 O (1)이며 배열의 순회 또는 배열 길이를 계산하는 것은 아닙니다.

count () -1 성능

count () 함수는 전체 배열을 가로 질러 길이를 계산합니다. 배열의 크기가 이미 있더라도 Count ()는 여전히 전체 배열을 반복하고 요소 수를 반환해야합니다. 그런 다음 Count () -1을 사용하여 배열의 마지막 요소의 인덱스를 계산 한 다음 인덱스를 통해 요소에 액세스하십시오. 이 프로세스에는 추가 시간 복잡성 O (N)가 필요합니다. 최악의 경우 () 에서 전체 배열을 스캔해야하기 때문입니다.

4. 실제 테스트

배열이 매우 큰 것으로 가정하면 마지막 요소에 액세스하고 성능 차이를 측정하기 위해 end ()count () -1을 사용합니다.

 // 수백만 개의 요소 배열을 만듭니다
$array = range(1, 1000000);

// 사용 end() 마지막 요소를 얻으십시오
$start = microtime(true);
$lastElementEnd = end($array);
$end = microtime(true);
echo 'end() 시간: ' . ($end - $start) . ' 두번째' . PHP_EOL;

// 사용 count()-1 마지막 요소를 얻으십시오
$start = microtime(true);
$lastElementCount = $array[count($array) - 1];
$end = microtime(true);
echo 'count()-1 시간: ' . ($end - $start) . ' 두번째' . PHP_EOL;

대부분의 경우 end ()는 count () -1 보다 훨씬 더 잘 수행됩니다. 이는 프로그램의 실행 시간을 크게 줄일 수 있으므로 배열의 마지막 요소에 대한 빈번한 액세스가 필요한 시나리오에 특히 중요합니다.

5. 요약

요약하면, end ()count () -1 은 배열의 마지막 요소에 액세스하는 데 사용될 수 있지만 End () 메소드는 일반적으로 배열이 더 클 때 더 효율적입니다. 불필요한 횡단을 피하고 마지막 요소를 직접 반환합니다. Count () -1은 배열의 길이를 추가로 계산해야하므로 시간 복잡성이 증가합니다.

성능에 민감한 코드를 작성하는 경우 END () 우선 순위를 정하는 것이 더 나은 옵션입니다. 특히 배열의 마지막 요소에 자주 액세스 해야하는 경우.