Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 메서드 체이닝(Method Chaining) 구현하는 방법

PHP에서는 뮤테이터(mutator) 메서드를 활용해 메서드를 연결하는 메서드 체이닝(Method Chaining)을 구현할 수 있습니다. 핵심 원리는 각 메서드가 원본 객체 자신($this)을 반환하도록 만드는 것입니다. 이렇게 하면 반환된 객체에 대해 다른 메서드를 계속해서 호출할 수 있어, 하나의 문장으로 여러 작업을 순차적으로 처리할 수 있습니다.

예제 코드

다음은 메서드 체이닝을 보여주는 간단한 예제입니다.

<?php
class sample_class {
    private $str;
    function __construct() {
        $this->str = "";
    }
    function addA() {
        $this->str .= "am";
        return $this;
    }
    function addB() {
        $this->str .= "_bn";
        return $this;
    }
    function getStr() {
        return $this->str;
    }
}
$new_object = new sample_class();
echo $new_object->addA()->addB()->getStr();

실행 결과

위 코드를 실행하면 다음과 같은 출력이 생성됩니다.

am_bn

동작 원리 설명

코드가 동작하는 방식을 단계별로 살펴보면 다음과 같습니다.

addA() 메서드는 문자열에 "am"을 추가한 후 return $this;를 통해 객체 자신을 반환합니다. 이어서 addB() 메서드가 호출되어 문자열에 "_bn"을 추가하고 마찬가지로 객체 자신을 반환합니다. 마지막으로 getStr() 메서드가 호출되어 누적된 최종 문자열인 am_bn을 반환합니다.

이처럼 메서드 체이닝을 활용하면 코드가 간결해지고 가독성이 크게 향상되며, 여러 단계의 작업을 직관적인 흐름으로 표현할 수 있다는 장점이 있습니다.