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

PHP에서 객체를 인스턴스화하고 같은 줄에서 메서드를 호출하는 방법

네, 가능합니다. PHP 5.4 버전부터는 객체를 인스턴스화하는 동시에 같은 줄에서 해당 객체의 메서드를 바로 호출할 수 있습니다. 이러한 방식은 별도의 변수에 객체를 저장하지 않고도 일회성 작업을 처리할 수 있어 코드가 더 간결해집니다.

기본 문법

객체는 클래스 멤버에 접근하는 방식으로 인스턴스화할 수 있습니다. 아래 스니펫과 같이 (new 클래스명) 형태로 객체를 생성한 뒤 화살표 연산자(->)로 메서드를 호출합니다.

(new my_var)->my_instance()

코드 설명 — 여기서 my_instance는 호출할 메서드이며, my_var는 인스턴스화할 객체(클래스)입니다.

예제

class Test_class {
    public function __construct($param) {
        $this->_var = $param;
    }
    public function my_method() {
        return $this->_var * 2;
    }
    protected $_var;
}
function Test_class($param) {
    return new Test_class($param);
}
$a = Test_class(10)->my_method();
var_dump($a);

예제 설명

Test_class는 생성자에서 매개변수를 받아 내부 속성 $_var에 저장하고, my_method()는 이 값을 두 배로 곱해 반환합니다. 함수 Test_class()는 새 객체를 생성해 반환하는 래퍼(wrapper) 역할을 하며, 마지막 줄에서 객체 생성과 메서드 호출이 한 줄에서 동시에 이루어집니다.

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

int(20)

매개변수로 전달한 10my_method()에 의해 두 배인 20으로 계산되어 정수형으로 출력된 것을 확인할 수 있습니다. 이처럼 PHP 5.4 이상에서는 객체 인스턴스화와 메서드 호출을 한 줄로 처리할 수 있어 코드의 가독성과 효율성을 높일 수 있습니다.