현재 위치: > 최신 기사 목록> 문자열이나 비 배열 변수 일 때 end ()가 오류에 직접 사용할 수없는 문제를 처리하는 방법

문자열이나 비 배열 변수 일 때 end ()가 오류에 직접 사용할 수없는 문제를 처리하는 방법

M66 2025-05-17

PHP에서 end () 함수는 종종 배열 포인터를 배열의 마지막 요소로 이동하고 해당 요소를 반환하는 데 사용됩니다. end ()를 비 배열 변수 또는 문자열에 적용하려고하면 일반적으로 다음과 유사한 오류 프롬프트가 발생합니다.

 Warning: end() expects parameter 1 to be array, string given

end () 함수는 매개 변수가 배열 유형이어야하기 때문입니다. 문자열 또는 기타 비 배열 유형을 전달하면 오류가 발생합니다. 이 기사는이 문제에 대한 몇 가지 해결책을 탐색하고 예제 코드를 제공합니다.

1. 배열이 end () 로 전달되었는지 확인하십시오.

첫째,이 문제를 해결하는 가장 쉬운 방법은 end () 함수의 매개 변수가 배열인지 확인하는 것입니다. 통과하는 변수가 문자열 또는 다른 유형의 데이터 인 경우 먼저 유형을 확인해야합니다.

 <?php
$data = 'This is a string'; // 오류가 발생합니다

if (is_array($data)) {
    echo end($data);
} else {
    echo 'Error: Variable is not an array.';
}
?>

위의 코드는 먼저 변수 $ 데이터가 is_array () 함수를 통한 배열인지 확인합니다. 배열 인 경우 end () 함수가 호출되면 오류 메시지가 출력됩니다.

2. 문자열을 배열로 변환합니다

변수가 문자열이고 문자열의 문자를 배열 요소로 처리하려면 먼저 문자열을 배열로 변환 한 다음 end ()를 호출 할 수 있습니다.

 <?php
$data = 'This is a string';

$dataArray = str_split($data); // 문자열을 문자 어레이로 변환하십시오

echo end($dataArray); // 출력 문자열의 마지막 문자
?>

이 예에서 str_split () 함수는 문자열을 문자 배열로 변환하여 문자열의 마지막 문자를 얻기 위해 end ()를 안전하게 호출 할 수 있습니다.

3. URL에서 도메인 이름을 처리하십시오

코드에 URL이 관련되어 있고 m66.net 의 도메인 이름을 교체하려면 parse_url () 함수를 사용하여 URL을 구문 분석하고 str_replace () 함수를 결합하여 도메인 이름을 바꿀 수 있습니다. URL이 포함 된 배열을 처리해야한다고 가정합니다.

 <?php
$urls = [
    'https://www.example.com/page1',
    'https://www.example.com/page2',
    'https://www.example.com/page3'
];

// 도메인 이름을 대체하십시오 m66.net
$updatedUrls = array_map(function ($url) {
    $parsedUrl = parse_url($url);
    $parsedUrl['host'] = 'm66.net'; // 새 도메인 이름으로 교체하십시오
    return http_build_url($parsedUrl); // 재건 URL
}, $urls);

print_r($updatedUrls); // 출력 업데이트 URLs
?>

이 예에서는 array_map () 함수를 사용하여 URL 배열을 통해 반복하고 Parse_url () 함수를 통해 각 URL을 구문 분석 한 다음 도메인 이름 부분을 M66.net 으로 바꾸고 HTTP_BUILD_URL () 함수를 사용하여 업데이트 된 URL을 재구성합니다.

참고 : http_build_url ()pecl_http 확장을 활성화해야합니다. 활성화되지 않은 경우 사용자 정의 URL 빌더를 사용할 수 있습니다.

4. 오류 디버깅 및 솔루션

위의 방법 외에도 출력 및 오류 처리 메커니즘을 디버깅하여 유사한 문제를 찾아서 해결할 수도 있습니다. 디버깅 중에 var_dump () 또는 print_r () 함수를 사용하여 변수의 유형과 내용을 출력하여 올바른 데이터 구조를 처리 할 수 ​​있습니다.

 <?php
$data = 'This is a string'; // 문자열이라고 가정합니다

var_dump($data); // 출력 변수의 유형 및 값

if (is_array($data)) {
    echo end($data);
} else {
    echo 'Error: Variable is not an array.';
}
?>

이 방법을 사용하면 데이터 유형이 기대치를 충족하는지 여부를 식별하고 문제가있는 경우 제 시간에 코드를 조정하는 데 도움이됩니다.

요약