현재 위치: > 최신 기사 목록> var_dump ()와 array_diff ()를 결합하여 PHP 함수의 실행 결과를 더 잘 이해하는 방법?

var_dump ()와 array_diff ()를 결합하여 PHP 함수의 실행 결과를 더 잘 이해하는 방법?

M66 2025-06-06

매일 PHP 개발에서, 우리는 종종 배열 처리 함수에 의해 반환 된 결과가 기대치와 일치하지 않는 상황에 종종 만나는 경우가 종종 있습니다. 현재 var_dump ()array_diff () 의 두 함수를 영리하게 결합 할 수 있다면 함수가 실행되기 전후에 데이터 변경을 이해하여 문제를 더 빨리 배치 할 수 있습니다.

이 기사는 예제를 사용 하여이 두 기능을 사용하여 PHP 기능의 실행 효과를 분석하는 방법을 보여줍니다.

기본 지식 검토

  • var_dump () : 유형 및 값을 포함하여 변수의 세부 정보를 출력하는 데 사용되는데, 이는 디버깅에 매우 적합합니다.

  • Array_Diff () : 첫 번째 배열에는 다른 배열에 표시되지 않는 값이 포함 된 배열을 반환합니다.

장면 예

인터페이스에서 일련의 사용자 데이터를 얻고 유효하지 않은 사용자를 정리하기를 희망한다고 가정하십시오. 우리는 filterinvalidusers () 함수를 썼지 만 결과는 옳지 않은 것 같습니다. 현재 var_dump ()array_diff ()를 사용하여 문제를 분석 할 수 있습니다.

 <?php

function filterInvalidUsers($users) {
    return array_filter($users, function($user) {
        return isset($user['email']) && filter_var($user['email'], FILTER_VALIDATE_EMAIL);
    });
}

// 원시 데이터
$originalUsers = [
    ['id' => 1, 'email' => 'user1@m66.net'],
    ['id' => 2, 'email' => 'invalid-email'],
    ['id' => 3], // 부족 email
    ['id' => 4, 'email' => 'user4@m66.net'],
];

// 기능을 실행하십시오
$filteredUsers = filterInvalidUsers($originalUsers);

// 사용 var_dump() 출력 결과
echo "필터링 된 사용자 목록:\n";
var_dump($filteredUsers);

// 사용 array_diff() 필터링되는 사용자를 확인하십시오
$diff = array_udiff($originalUsers, $filteredUsers, function($a, $b) {
    return $a['id'] <=> $b['id'];
});

echo "\n필터링 된 사용자는 가지고 있습니다:\n";
var_dump($diff);

출력 분석

var_dump () 를 통해 필터링 된 사용자 배열에서는 정당한 사서함 형식을 가진 사용자 만 남습니다. Array_udiff () (콜백 함수를 가져 오는 것은 배열 요소를 비교하는 데 사용됩니다)는 원래 배열에서 어떤 사용자가 제거되었는지 알려줄 수 있으므로 개발자는 기능 동작이 기대치를 충족하는지 여부를 확인할 수 있습니다.

  1. 배열 컨텐츠의 변경 사항에만 관심이있는 경우 전체 구조 대신 키 값 만 비교할 수 있습니다.

  2. Array_Diff () 시리즈 함수는 기본적으로 문자열로 비교됩니다. 복잡한 구조 인 경우 array_udiff ()를 사용하고 사용자 정의 비교 함수를 전달하는 것이 좋습니다.

  3. var_dump ()를 사용할 때 프롬프트 텍스트를 추가하면 디버깅 정보가 더 명확해질 수 있습니다.

결론

디버깅은 프로그래밍 프로세스에 없어서는 안될 부분이며, var_dump ()array_diff () 는 매우 강력한 "현미경"입니다. 이 두 가지 도구를 합리적으로 결합함으로써 기능의 처리 논리, 특히 복잡한 배열을 처리 할 때 문제를 더 빨리 발견하고 해결할 수 있도록 더 깊이 이해할 수 있습니다. PHP 프로그램을 디버깅 할 때이 기사가 도움이되기를 바랍니다.