>  기사  >  백엔드 개발  >  PHP 매직 메소드 PHP 클래스의 매직 메소드

PHP 매직 메소드 PHP 클래스의 매직 메소드

WBOY
WBOY원래의
2016-07-28 08:25:33900검색

정의:

PHP 클래스에서 두 개의 밑줄 "__"로 시작하는 메소드를 매직 메소드라고 합니다.

범주:

예: 생성 방법: __construct; 파괴 방법: __destruct; 동적 오버로딩: __set(), __get(), __call(), __callStatic(); __clone()

응용 시나리오:

1. 프로그램이 존재하지 않거나 보이지 않는 클래스 속성을 수정하려고 하면 PHP 엔진은 __set() 메서드를 호출합니다. is 이 메소드는 클래스에 정의되어 있습니다. __set()의 정의 형식은 다음과 같습니다.

function __set($name,$value){

//구현 세부정보

}

그 중 $name은 동적으로 생성된 변수의 이름이고, $value는 변수의 값이다.

2. 프로그램이 존재하지 않거나 보이지 않는 클래스 속성을 읽으려고 할 때 PHP 엔진은 물론 해당 메서드가 클래스에 정의되어 있는 경우 __get() 메서드를 호출합니다. __get()의 정의 형식은 다음과 같습니다.

function __get($name){

//구현 내용

}

그 중, $name은 동적 생성된 변수의 이름입니다.

3. 프로그램이 존재하지 않거나 보이지 않는 클래스 메서드를 호출하려고 하면 물론 해당 메서드가 클래스에 정의되어 있는 경우 PHP 엔진은 __call() 메서드를 호출합니다. __call() 메소드의 정의 형식은 다음과 같습니다.

function __call($name,$args){

//구현 세부정보

}

그 중 $name은 동적으로 생성된 메소드의 이름이고 $args는 배열 형태로 존재하는 메소드의 매개변수이다.

4. PHP5.3.0부터 __callStatic()을 사용하여 정적 메서드를 동적으로 생성할 수 있습니다. __callStatic()의 정의 형식은 다음과 같습니다.

function __callStatic($name,$args){

//구현 세부정보

}

그 중 $name은 동적으로 생성된 메소드의 이름이고, $args는 메소드의 매개변수로서 배열 형태로 존재한다.

5. __clone() 메서드가 정의되면 복사 시 클래스가 자동으로 이를 호출하므로 __clone() 메서드의 참조 특성에 대한 메모리를 다시 열 수 있습니다. __clone()의 정의 형식은 다음과 같습니다.

function __clone(){

//구현 세부정보

}

이상에서는 PHP 매직 메소드 내용을 포함하여 PHP 클래스의 매직 메소드에 대해 소개하였습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.

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