백엔드 개발 PHP 튜토리얼 PHP가 아닌 속성 후크

PHP가 아닌 속성 후크

Oct 09, 2024 am 06:13 AM

Property Hooks no PHP

11월에는 우리가 사랑하는 PHP 버전 8.4를 출시할 예정이며, 이를 통해 커뮤니티에서 오랫동안 기다려온 새로운 기능인 속성 후크를 갖게 됩니다! C#, Swift 및 Kotlin과 같은 다른 언어에서 영감을 받은 이 새로운 기능은 마법의 __set() 및 __get() 메서드의 번거로움을 없애줍니다.

현재 속성을 비공개로 만들지 않고도 getter와 setter를 갖는 방법과 속성과 다른 이름을 가진 두 개의 새로운 메서드를 만드는 방법의 예를 보여 드리겠습니다.

class Foo
{
    private String $bar;

    public function __set($name, $value)
    {
        $this->$name = $value . "!!!"; 
    }

    public function __get($name)
    {
         return "!!!" . $this->$name;
    }
}
로그인 후 복사

__get() 및 __set()을 사용하면 값을 설정할 때와 값을 찾을 때 $bar를 공개 상태로 둘 수 있지만 구현이 다르고 속성과 다른 이름을 가진 메서드를 만들 필요가 없습니다. 시각적인 예에서 사용법은 다음과 같습니다.

$foo = new Foo();

$foo->bar = "new release";
// aqui o valor que ficará salvo seria "new release!!!"

echo $foo->bar; // aqui retornaria "!!!new release!!!"
로그인 후 복사

이제 __get() 및 __set()이 다른 속성과 함께 어떻게 보일지 상상해 보십시오. 완전히 엉망이 됩니다. 이를 수행하는 또 다른 방법은 getBar() 메소드와 또 다른 setBar() 메소드를 생성하는 것입니다. 그러나 이는 하나의 속성만 고려하며 사용법은 이전 속성과 다릅니다.

class Foo
{
    private String $bar;

    public function setBar($value)
    {
        $this->bar = $value . "!!!"; 
    }

    public function getBar()
    {
         return "!!!" . $this->bar;
    }
}

$foo = new Foo();

$foo->setBar('new release');
// aqui o valor que ficará salvo seria "new release!!!"

echo $foo->getBar(); // aqui retornaria "!!!new release!!!"
로그인 후 복사

저는 개인적으로 이 사용 사례에 대한 새로운 메서드를 만드는 것이 약간 짜증스럽다고 생각합니다. 저는 속성의 직접 호출을 사용하여 해당 값을 가져오고 설정하는 것을 선호합니다. 이 새로운 기능은 이러한 혼란을 해결하고 클래스 선언과 함께 get 및 set을 개별적으로 정의할 수 있도록 하기 위해 출시되었습니다.

class Foo
{
    public String $bar {
        set (String $value) => $this->bar = $value . "!!!";
        get => "!!! . $this->bar";
    }
}

로그인 후 복사

이 새 코드는 동일한 작업을 수행하지만 새 메소드를 생성하거나 클래스의 각 속성을 처리해야 하는 __get() 및 __set()을 사용하지 않고 개별적으로 수행합니다.

이제 11월 21일에 출시될 새로운 기능의 출시를 기다리세요!

위 내용은 PHP가 아닌 속성 후크의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄) 11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄) Mar 03, 2025 am 10:49 AM

11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄)

Instagram API 소개 Instagram API 소개 Mar 02, 2025 am 09:32 AM

Instagram API 소개

Laravel의 플래시 세션 데이터로 작업합니다 Laravel의 플래시 세션 데이터로 작업합니다 Mar 12, 2025 pm 05:08 PM

Laravel의 플래시 세션 데이터로 작업합니다

Laravel Back End : Part 2, React가있는 React 앱 구축 Laravel Back End : Part 2, React가있는 React 앱 구축 Mar 04, 2025 am 09:33 AM

Laravel Back End : Part 2, React가있는 React 앱 구축

Laravel 테스트에서 단순화 된 HTTP 응답 조롱 Laravel 테스트에서 단순화 된 HTTP 응답 조롱 Mar 12, 2025 pm 05:09 PM

Laravel 테스트에서 단순화 된 HTTP 응답 조롱

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법 PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법 Mar 14, 2025 am 11:42 AM

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법

Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트 Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트 Mar 13, 2025 pm 12:08 PM

Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트

2025 PHP 상황 조사 발표 2025 PHP 상황 조사 발표 Mar 03, 2025 pm 04:20 PM

2025 PHP 상황 조사 발표

See all articles