오버로드된 메서드 해결 및 Null 인수
null 인수가 제공될 때 올바른 오버로드된 메서드를 선택하는 프로세스는 특정 단계 순서를 따릅니다.
1. 접근성:
처음에 컴파일러는 호출 코드의 액세스 권한을 기반으로 액세스할 수 없는 오버로드된 메서드를 필터링합니다.
2. 적용 범위:
다음으로 적용 가능한 방법을 파악합니다. 각 형식 매개변수에 암시적으로 변환될 수 있는 해당 인수가 있는 경우 메서드가 적용 가능한 것으로 간주됩니다. Null 값은 값 유형(예: int
또는 Point
)으로 암시적으로 변환될 수 없으므로 이러한 메서드는 고려 대상에서 제외됩니다.
3. params
메소드 처리:
params
키워드를 사용하는 메서드는 확장(배열을 개별 인수로 처리) 또는 확장되지 않음(단일 배열 인수로 처리)으로 호출할 수 있습니다. 둘 다 해당되는 경우 확장된 형식이 선호되며 확장되지 않은 버전은 삭제됩니다.
4. 베스트 매치 선택:
마지막으로 컴파일러는 나머지 적용 가능한 메서드를 비교하여 가장 구체적으로 일치하는 메서드를 찾습니다. 보다 전문화된 매개변수 유형을 가진 메소드는 보다 일반적인 유형을 가진 메소드보다 더 구체적인 것으로 간주됩니다.
제공된 예와 같이 모호한 시나리오(여러 개의 동일하게 구체적인 방법)에서는 컴파일러가 최상의 후보를 결정할 수 없어 컴파일 오류가 발생합니다. object
매개변수 유형은 object[]
및 string
보다 덜 구체적이므로 이러한 모호성이 발생합니다.
위 내용은 오버로드된 메서드 확인은 Null 값을 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!