매일 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 () (콜백 함수를 가져 오는 것은 배열 요소를 비교하는 데 사용됩니다)는 원래 배열에서 어떤 사용자가 제거되었는지 알려줄 수 있으므로 개발자는 기능 동작이 기대치를 충족하는지 여부를 확인할 수 있습니다.
배열 컨텐츠의 변경 사항에만 관심이있는 경우 전체 구조 대신 키 값 만 비교할 수 있습니다.
Array_Diff () 시리즈 함수는 기본적으로 문자열로 비교됩니다. 복잡한 구조 인 경우 array_udiff ()를 사용하고 사용자 정의 비교 함수를 전달하는 것이 좋습니다.
var_dump ()를 사용할 때 프롬프트 텍스트를 추가하면 디버깅 정보가 더 명확해질 수 있습니다.
디버깅은 프로그래밍 프로세스에 없어서는 안될 부분이며, var_dump () 및 array_diff () 는 매우 강력한 "현미경"입니다. 이 두 가지 도구를 합리적으로 결합함으로써 기능의 처리 논리, 특히 복잡한 배열을 처리 할 때 문제를 더 빨리 발견하고 해결할 수 있도록 더 깊이 이해할 수 있습니다. PHP 프로그램을 디버깅 할 때이 기사가 도움이되기를 바랍니다.