이 글은 PHP에 대한 관련 지식을 제공합니다. 주로 매직 메소드에 대한 관련 문제를 소개하고 __construct 생성 방법, __destruct 소멸자 방법, __clone 복제 방법 등을 요약합니다. 모든 사람에게 도움이 되기를 바랍니다.
추천 학습: "PHP Video Tutorial"
PHP의 매직 메소드에 대한 자세한 설명, PHP에는 일종의 메소드가 있는데, 이는 매우 이상합니다. 즉, 특정 조건이 충족되는 한 충족되면 자체적으로 실행됩니다. 즉, PHP의 Magic 메소드입니다.
<?php class autofelix { public function __construct() { echo '我是类autofelix'; } } new autofelix(); //即可输出:我是类autofelix
<?php class autofelix { public function __destruct() { echo '我准备销毁你了'; } } $a = new autofelix(); unset($a); //即可输出:我准备销毁你了
<?php class autofelix { public function __clone() { echo '我克隆了你'; } } $a = new autofelix(); clone $a; //即可输出:我克隆了你
<?php class autofelix { private function say() { echo 'hello, 我是autofelix'; } public function __call($name, $arguments) { echo '你无权调用' . $name . '方法'; die; } } $a = new autofelix(); $a->say(); //按理说应该报错 //即可输出:你无权调用say方法
<?php class autofelix { private static function say() { echo 'hello, 我是autofelix'; } public function __callStatic($name, $arguments) { echo '你无权调用' . $name . '方法'; die; } } $a = new autofelix(); $a::say(); //按理说应该报错 //即可输出:你无权调用say方法
<?php class autofelix { public function __debugInfo() { echo '你看不到我任何信息的~'; } } var_dump(new autofelix()); //即可输出:你看不到我任何信息的~
<?php class autofelix { private $name = 'autofelix'; public function __get($name) { if(in_array($name, ['name', 'age'])) { echo $this->name; } else { echo '不是什么东西都能访问的~'; } } } $a = new autofelix(); $a->name; //即可输出:autofelix
<?php class autofelix { private $name = 'autofelix'; public function __isset($name) { if(in_array($name, ['name', 'age'])) { echo $this->name; } else { echo '不是什么东西都能访问的~'; } } } $a = new autofelix(); isset($a->name); //结果: autofelix
<?php class autofelix { public function __set($name, $value) { echo '你想给' . $name . '赋值' . $value; } } $a = new autofelix(); $a->name = 'autofelix'; //结果: 你想给name赋值autofelix;
<?php class autofelix { public function __invoke() { echo '你还想调用我?'; } } $a = new autofelix(); //对象直接当函数调用 $a(); //结果: 你还想调用我?
<?php class autofelix { public function __sleep() { echo '弄啥嘞~'; } } $a = new autofelix(); serialize($a); //结果: 弄啥嘞~
<?php class autofelix { public function __toString() { return '我是你得不到的对象...'; } } $a = new autofelix(); echo $a; //结果: 我是你得不到的对象...
<?php class autofelix { private $name = 'autofelix'; public function __unset($name) { echo '想删我? 你也配?'; } } $a = new autofelix(); unset($a->name); //结果: 想删我? 你也配?추천 학습: "PHP 비디오 튜토리얼
위 내용은 PHP의 매직 메소드 요약 및 구성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!