객체 연산자 오버로딩
객체 연산자 오버로딩 (Operator Overloading for Objects)
이 확장은 객체에 대해 **연산자 오버로딩(operator overloading)**을 정의하고 구현합니다. 이 페이지에서는 이것이 무엇을 할 수 있는지 개요를 살펴봐요.
본문
이 확장은 객체에 대해 연산자 오버로딩을 정의하고 구현해요. 다시 말해, 객체에 어떤 연산자(operator)가 쓰였을 때 그 객체가 어떻게 반응할지를 정의할 수 있게 해줍니다.
예를 하나 들어볼게요. 덧셈 연산자(+)가 오버로드된 컬렉션(collection) 타입 객체를 만든다면, 컬렉션에 요소를 추가하거나 두 컬렉션을 더할 수 있어요. 또 다른 예로는 곱셈 연산자(*)가 오버로드된 향상된 문자열 클래스가 있는데, 이 경우 문자열을 특정 횟수만큼 반복할 수 있습니다.
즉, PHP에서는 화살표(->), [], clone, ++/-- 같은 것을 객체에 적용할 수 있지만, +나 * 같은 전통적인 산술 연산자는 일반 객체 타입에 기본적으로 정의되어 있지 않아요. 이 확장이 바로 그 연산자들을 객체에 쓸 수 있게 만들어 줍니다.
이 확장의 핵심은 Operator Overloading Magic Methods 장에 정리되어 있어요. 섹션 링크에서 어떤 마법 메서드들이 정의되어 있는지 자세히 확인할 수 있습니다.