API를 개발할 때는 일반적으로 클라이언트가 보낸 요청 매개 변수가 예상 구조 및 형식을 충족하는지 확인하기 위해 매개 변수 확인을 수행해야합니다. PHP는 Array_diff_ukey () 함수가 매개 변수 검증에서 매우 효율적인 역할을 수행 할 수있는 이러한 작업을 구현하는 데 도움이되는 많은 내장 기능을 제공합니다.
Array_diff_ukey () 는 두 배열을 비교하는 함수이지만 IT와 Array_diff () 의 차이는 Array_Diff_ukey ()가 배열의 키에 의해 비교된다는 것입니다. 두 개의 배열을 수신하고 동일하지 않은 모든 키가있는 요소 배열을 반환합니다. 이는 매개 변수를 확인할 때 특히 유용합니다. 특히 일부 API 요청에 불필요한 매개 변수가 포함되어 있는지 확인할 때 특히 유용합니다.
array_diff_ukey () 함수의 기본 구문은 다음과 같습니다.
array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
$ array1 및 $ array2 : 비교할 두 개의 배열.
$ key_compare_func : 두 배열의 키를 비교하는 콜백 함수.
API 매개 변수 확인에서 일반적으로 클라이언트가 보낸 요청에 예상되는 매개 변수가 포함되어 있는지 확인하고 불필요하거나 불필요한 매개 변수를 제외해야합니다. 이 작업을 수행하기 위해 Array_diff_ukey ()를 사용할 수 있습니다.
API 요청에 대한 매개 변수 배열이 있고 클라이언트가 추가 매개 변수로 요청을 보내고, 이러한 관련없는 매개 변수를 제거하고 관심있는 매개 변수 만 유지해야합니다.
클라이언트 요청에 다음 매개 변수를 포함 할 것으로 예상합니다.
$requiredParams = ['name', 'age', 'email'];
클라이언트가 보낸 요청 매개 변수 배열은 다음과 같습니다.
$requestParams = [
'name' => 'John',
'age' => 30,
'email' => 'john@example.com',
'extra_param' => 'value',
];
우리는 $ requestparams 에서 extra_param을 제거하려고, array_diff_ukey ()를 사용하여 다음을 확인할 수 있습니다.
// 콜백 함수를 정의합니다,키가 있는지 여부를 비교하십시오 $requiredParams 가운데
$keyCompareFunc = function ($key1, $key2) use ($requiredParams) {
return in_array($key1, $requiredParams) ? 0 : 1; // 필요한 매개 변수 만 유지됩니다
};
// 사용 array_diff_ukey() 필터링을 수행하십시오
$filteredParams = array_diff_ukey($requestParams, array_flip($requiredParams), $keyCompareFunc);
print_r($filteredParams);
출력 결과는 다음과 같습니다.
Array
(
[name] => John
[age] => 30
[email] => john@example.com
)
위에서 볼 수 있듯이 추가 _param은 요청 매개 변수 배열에서 성공적으로 제거됩니다.
때로는 추가 매개 변수를 제외 할뿐만 아니라 특정 매개 변수의 값이 예상 유형을 충족하는지 확인하는 것과 같은 더 복잡한 검증이 필요합니다. Array_diff_ukey () 와 기타 검증 로직을 결합하여이를 달성 할 수 있습니다.
매개 변수 연령이 정수가 될 것으로 예상하고 이메일이 유효한 이메일 주소라고 가정합니다. 매개 변수를 필터링 한 후 이러한 유형의 검증을 계속할 수 있습니다.
// 콜백 함수를 정의합니다,유형 확인을 수행하십시오
$keyCompareFunc = function ($key1, $key2) use ($requiredParams) {
return in_array($key1, $requiredParams) ? 0 : 1; // 필요한 매개 변수 만 유지됩니다
};
// 불필요한 매개 변수를 필터링하십시오
$filteredParams = array_diff_ukey($requestParams, array_flip($requiredParams), $keyCompareFunc);
// 확인을 입력하십시오
if (isset($filteredParams['age']) && !is_int($filteredParams['age'])) {
echo 'Age must be an integer';
}
if (isset($filteredParams['email']) && !filter_var($filteredParams['email'], FILTER_VALIDATE_EMAIL)) {
echo 'Invalid email format';
}
print_r($filteredParams);
이 예에서 먼저 불필요한 매개 변수를 필터링 한 다음 나이 와 이메일을 확인하십시오.
ARRAY_DIFF_UKEY () 함수를 합리적으로 사용하여 API 요청에서 필터 매개 변수를 효율적으로 할 수 있습니다. 불필요한 매개 변수를 제거하는 데 도움이 될뿐만 아니라 복잡한 검증 로직에서 중요한 역할을합니다. 요청 매개 변수의 엄격한 제어가 필요한 API의 경우 Array_diff_ukey ()는 매우 실용적인 도구입니다.