현재 위치: > 최신 기사 목록> end () 조작의 배열 동작을 조롱하는 방법은 무엇입니까?

end () 조작의 배열 동작을 조롱하는 방법은 무엇입니까?

M66 2025-06-02

PHP에서 end () 함수는 배열의 내부 포인터를 마지막 요소에 가리키고 해당 요소의 값을 반환하는 데 사용됩니다. end () 함수는 매우 유용하지만 경우에 따라 테스트의 안정성과 예측 가능성을 보장하기 위해 단위 테스트에서 end () 함수의 동작을 조롱해야 할 수도 있습니다. 이 기사는 테스트에서 PHP에서 END () 함수의 배열 포인터 동작을 시뮬레이션하는 방법을 살펴 봅니다.

1. end () 함수의 기본 사용

end () 함수를 시뮬레이션하는 방법을 이해하기 전에 먼저 작동 방식을 이해하십시오. PHP에서 배열의 내부 포인터는 배열의 요소를 가리 킵니다. end () 함수는 내부 포인터를 배열의 마지막 요소로 이동하고 해당 요소의 값을 반환합니다.

 <?php
$array = [1, 2, 3, 4, 5];
$lastElement = end($array);  // 포인터를 마지막 요소로 이동하십시오,요소의 값을 반환하십시오
echo $lastElement;  // 산출 5
?>

2. end () 함수의 배열 포인터 동작

end () 함수가 호출 될 때마다 PHP는 배열의 내부 포인터를 변형하여 배열의 마지막 요소를 가리 킵니다. 따라서 테스트 에서이 동작을 시뮬레이션 해야하는 경우 배열의 내부 포인터 동작이 end () 함수의 효과를 올바르게 반영해야합니다.

샘플 코드 :

 <?php
$array = ['a', 'b', 'c', 'd'];
echo current($array);  // 산출 'a'
end($array);  // 포인터를 마지막 요소로 이동하십시오
echo current($array);  // 산출 'd'
?>

3. 테스트에서 end () 함수를 시뮬레이션합니다

단위 테스트에서는 배열의 내부 포인터를 실제로 수정하지 않으려면 end () 함수의 동작을 조롱 할 수 있습니다 (다른 부분의 테스트에 영향을 줄 수 있으므로). 예를 들어, phpunit의 모의 개체를 사용하여 end () 함수의 리턴 값을 시뮬레이션하여 end ()가 실제로 호출 될 때 배열 포인터의 변경을 피하십시오.

모의를 사용하여 end () 함수를 시뮬레이션하십시오

 <?php
use PHPUnit\Framework\TestCase;

class EndFunctionTest extends TestCase
{
    public function testEndFunctionSimulation()
    {
        // 시뮬레이션 된 배열을 만듭니다
        $array = ['apple', 'banana', 'cherry'];

        // 시뮬레이션 end() 함수의 반환 값
        $this->assertEquals('cherry', end($array));  // 반품 'cherry'
    }
}
?>

4. end () 함수의 동작을 시뮬레이션하는 이유는 무엇입니까?

때때로 테스트에서 end () 함수를 호출하면 특히 여러 테스트가 수행 될 때 어레이 포인터의 상태에 영향을 줄 수있어 불안정한 테스트 결과가 발생할 수 있습니다. end () 함수의 동작을 조롱함으로써 배열의 내부 포인터가 테스트에서 수정되지 않도록하고 여전히 end () 함수의 리턴 값을 확인할 수 있습니다.

5. 사용자 정의 방법을 사용하여 end () 함수의 동작을 시뮬레이션합니다.

내장 End () 함수를 사용하지 않고 배열의 내부 포인터를 완전히 제어하려면 end () 함수의 동작을 시뮬레이션하는 메소드를 사용자 정의 할 수도 있습니다.

 <?php
function mockEnd($array)
{
    return $array[count($array) - 1];
}

// 테스트 사용자 정의 mockEnd 기능
$array = [10, 20, 30, 40];
echo mockEnd($array);  // 산출 40
?>

요약

이 기사를 통해 PHP의 end () 함수가 어레이의 내부 포인터에 어떤 영향을 미치는지, 테스트에서 동작을 시뮬레이션하는 방법을 알 수 있습니다. end () 함수를 시뮬레이션하면 테스트의 안정성을 보장 할뿐만 아니라 테스트에서 배열의 내부 상태를 수정하지 않아 테스트의 정확성과 신뢰성을 향상시킵니다.