Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP 매직 메소드

<시간/>

소개

PHP의 매직 메소드는 특정 작업을 수행하기 위한 특수 메소드입니다. 이러한 메서드는 접두사로 이중 밑줄(__)을 사용하여 이름이 지정됩니다. 이러한 모든 함수 이름은 예약되어 있으며 관련 마법 기능 이외의 다른 목적으로 사용할 수 없습니다. 클래스의 마법 메서드는 public으로 선언해야 합니다. 이러한 메소드는 특정 조건이 충족될 때 자동으로 호출되는 인터셉터 역할을 합니다.

현재 PHP에서 사용할 수 있는 마법의 방법은 다음과 같습니다.

__수면

public __sleep ( void ) : array

클래스의 serialize() 메서드는 함수 이름 __sleep()이 있는지 확인합니다. 그렇다면 해당 함수는 직렬화 전에 실행됩니다. 직렬화되어야 하는 해당 개체의 모든 변수 이름이 포함된 배열을 반환해야 합니다.

__웨이크업

public __wakeup ( void ) : void

unserialize() 메서드는 매직 이름이 __wakeup()인 함수가 있는지 확인합니다. 존재하는 경우 이 함수는 개체가 가질 수 있는 모든 리소스를 재구성할 수 있습니다.

__직렬화

public __serialize ( void ) : array

serialize() 메서드는 클래스에 __serialize() 메서드가 있는지도 확인합니다. 그렇다면 직렬화 전에 실행됩니다. 객체의 직렬화된 형태를 나타내는 키/값 쌍의 연관 배열을 구성하고 반환해야 합니다.

__직렬화 해제

public __unserialize ( array $data ) : void

또한 unserialize()는 __unserialize()가 있는지 확인하고 __serialize()에서 반환된 복원된 배열을 전달합니다. 그런 다음 해당 배열에서 개체의 속성을 적절하게 복원할 수 있습니다.

__toString

public __toString ( void ) : string

__toString() 메서드는 객체의 문자열 표현을 설명합니다. 예를 들어, what echo $obj; 인쇄됩니다. 이 메서드는 문자열을 반환해야 합니다.

__호출

__invoke ([ $... ] ) : mixed

이 메소드는 스크립트가 객체를 함수로 호출하려고 할 때 호출됩니다.

__set_state

static __set_state ( array $properties ) : object

이 정적 메서드는 var_export()에서 내보낸 클래스에 대해 호출됩니다. array('property' => value, ...) 형식으로 내보낸 속성을 포함하는 배열인 하나의 매개변수를 받습니다.

__debug 정보

__debugInfo ( void ) : array

이 메서드는 표시되어야 하는 속성을 가져오기 위해 개체를 덤프하기 위해 var_dump()가 실행될 때 자동으로 호출됩니다. 정의되지 않은 경우 모든 public, protected 및 private 속성이 표시됩니다.

__세트

public __set ( string $name , mixed $value ) : void

__set()은 액세스할 수 없는(보호 또는 비공개) 속성 또는 존재하지 않는 속성에 데이터를 쓸 때 실행됩니다.

__get

public __get ( string $name ) : mixed

__get()은 액세스할 수 없는(보호 또는 비공개) 또는 존재하지 않는 속성에서 데이터를 읽는 데 사용됩니다.

__isset

public __isset ( string $name ) : bool

__isset()은 액세스할 수 없는(보호 또는 비공개) 속성 또는 존재하지 않는 속성에서 isset() 또는 empty()를 호출하여 트리거됩니다.

__설정되지 않음

public __unset ( string $name ) : void

__unset()은 unset()이 액세스할 수 없거나(보호 또는 비공개) 또는 존재하지 않는 속성에 사용될 때 호출됩니다.