> 백엔드 개발 > PHP 튜토리얼 > PHP 매직 메소드 사용 소개

PHP 매직 메소드 사용 소개

怪我咯
풀어 주다: 2023-03-13 22:28:01
원래의
1289명이 탐색했습니다.

객체 지향 프로그래밍에서 PHP는 프로그래밍에 많은 편의성을 제공하는 일련의 마법의 메서드를 제공합니다. PHP의 매직 메소드는 일반적으로 (두 개의 밑줄)로 시작하고 명시적인 호출이 필요하지 않지만 특정 조건에 의해 트리거됩니다. 이 문서에서는 PHP에서 사용할 수 있는 매직 메서드를 간략하게 요약합니다.

1.construct() 객체를 인스턴스화할 때 객체의 이 메서드가 먼저 호출됩니다.

class Test { function construct() { echo "before"; } } $t = new Test(); 
class Test { function construct() { echo "before"; } } $t = new Test();
로그인 후 복사

출력은 다음과 같습니다:
start
우리는 동일한 클래스 이름을 가진 php5 객체 모델과 함수가 클래스의 생성자라는 것을 알고 있습니다. 동시에, php5는 기본적으로 생성자를 호출합니다. constructor() 함수는 호출되지 않으므로, constructor()는 클래스의 기본 생성자로 사용됩니다
2.destruct() 이 메서드는 객체가 삭제되거나 개체 작업이 종료됩니다.

class Test { function destruct() { echo "end"; } } $t = new Test();将会输出end 
class Test { function destruct() { echo "end"; } } $t = new Test();将会输出end
로그인 후 복사

객체 작업이 끝나면 리소스를 해제할 수 있습니다.
3.get()은 존재하지 않는 속성을 읽으려고 할 때 호출됩니다.

객체에 존재하지 않는 속성을 읽으려고 하면 PHP는 오류 메시지를 표시합니다. 클래스에 get 메소드를 추가하면 이 함수를 사용하여 Java의 리플렉션과 유사한 다양한 작업을 구현할 수 있습니다.

class Test { public function get($key) { echo $key . " 不存在"; } } $t = new Test(); echo $t->name; 就会输出:name 不存在 
class Test { public function get($key) { echo $key . " 不存在"; } } $t = new Test(); echo $t->name; 就会输出:name 不存在
로그인 후 복사

4.set()은 존재하지 않는 속성에 값을 쓰려고 할 때 호출됩니다.

class Test { public function set($key,$value) { echo '对'.$key . "附值".$value; } } $t = new Test(); $t->name = "aninggo"; 就会输出:对 name 附值 aninggo 
class Test { public function set($key,$value) { echo '对'.$key . "附值".$value; } } $t = new Test(); $t->name = "aninggo"; 就会输出:对 name 附值 aninggo
로그인 후 복사

5.call() 이 메소드는 객체에 존재하지 않는 메소드를 호출하려고 할 때 호출됩니다.

class Test { public function call($Key, $Args) { echo "您要调用的 {$Key} 方法不存在。你传入的参数是:" . print_r($Args, true); } } $t = new Test(); $t->getName(aning,go); 
class Test { public function call($Key, $Args) { echo "您要调用的 {$Key} 方法不存在。你传入的参数是:" . print_r($Args, true); } } $t = new Test(); $t->getName(aning,go);
로그인 후 복사

프로그램은 다음을 출력합니다.
호출하려는 getName 메소드가 존재하지 않습니다. 매개변수는 다음과 같습니다. Array
(
[0] => aning
[1] => go
)
호출하려는 getName 메소드가 존재하지 않습니다. 매개변수는 다음과 같습니다: Array
(
[0] => aning
[1] => go
)
6.toString()은 객체를 인쇄할 때 호출됩니다.

이 메소드는 Java의 toString 메소드와 유사합니다. 객체를 직접 인쇄할 때 이 함수를 호출합니다.
class Test { public function toString() { return "Print Test" } } $t = new Test()
Run echo $t; 객체가 복제되면 $t->toString();이 호출되어 출력됩니다.
Print Test
7.clone() 객체가 복제되면 호출됩니다.
class Test { public function clone() { echo "복사되었습니다!"; } }$t = new Test() $t1 = clone $t;프로그램 출력: 복제되었습니다!

위 내용은 PHP 매직 메소드 사용 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿