(Recommended tutorial: PHP video tutorial)
Constructor method/__construct
When the class is instantiated
Simply put, when a new class is created, this method will automatically execute
<?php class autofelix { public function __construct() { echo '我是飞兔小哥~'; } } new autofelix();
Destruction method/__destruct
When the class is destroyed Automatically triggered when
You can use the unset method to trigger this method
<?php class autofelix { public function __destruct() { echo '我是飞兔小哥,别销毁我~'; } } unset(new autofelix());
Clone method/__clone
It will be automatically called when the class is cloned
<?php class autofelix { public function __clone() { echo '我是飞兔小哥,我想克隆你~'; } } $a = new autofelix(); clone $a;
non Static calling method/__call
It will be automatically called when the method to be called does not exist or has insufficient permissions
For example, if I call a private modified method inside the class from outside the class
<?php class autofelix { private function say() { echo '我是飞兔小哥~'; } public function __call($name, $arguments) { echo '你无权调用' . $name . '方法'; die; } } (new autofelix())->say();
Static calling method/__callStatic
It will be automatically called when the static method to be called does not exist or has insufficient permissions
For example, I call a private modified static method inside the class from outside the class
<?php class autofelix { private static function say() { echo '我是飞兔小哥~'; } public function __callStatic($name, $arguments) { echo '你无权调用' . $name . '方法'; die; } } $a = new autofelix(); $a::say();
Print method/__debugInfo
This method will be called when var_dump() class object
If this method is not defined, var_dump() will print out all classes Attribute
<?php class autofelix { public function __debugInfo() { echo '飞兔小哥给你温馨提示'; } } var_dump(new autofelix());
Get member attributes/__get
Through it, you can get private member attributes outside the object
<?php class autofelix { private $name = '飞兔小哥'; public function __get($name) { if(in_array($name, ['name', 'age'])) { echo $this->name; } else { echo '不是什么东西都能访问的~'; } } } (new autofelix())->name;
Get inaccessible attributes/__isset
When pairing Inaccessible properties will be automatically called when calling isset() or empty()
<?php class autofelix { private $name = '飞兔小哥'; public function __isset($name) { if(in_array($name, ['name', 'age'])) { echo $this->name; } else { echo '不是什么东西都能访问的~'; } } } isset(new autofelix()->name);
Attribute assignment/__set
Will be triggered when assigning a value to an undefined property
<?php class autofelix { public function __set($name, $value) { echo '你想给' . $name . '赋值' . $value; } } (new autofelix())->name = '飞兔小哥';
Call the object itself/__invoke
The object itself cannot be used directly as a function
If the object is called as a function, this method will be triggered
<?php class autofelix { public function __invoke() { echo '你想调用我?'; } } (new autofelix())();
Serialization call / __sleep
Will be automatically called when serialize() is called outside the class
<?php class autofelix { public function __sleep() { echo '我是飞兔小哥~'; } } serialize(new autofelix());
Deserialization call/__wakeup
Will be called when the unserialize() method is executed Automatic call
<?php class autofelix { public function __wakeup() { echo '我是飞兔小哥~'; } } unserialize(new autofelix());
Output character call/__toString
What should be returned when a class is treated as a string
A string type must be returned here, otherwise a fatal error will be reported
<?php class autofelix { public function __toString() { return '我是你得不到的对象...'; } } $a = new autofelix(); echo $a;
Delete call/__unset
When unset() is called on an inaccessible property, it will be automatically called
<?php class autofelix { private $name = '飞兔小哥'; public function __unset($name) { echo '别删我,我是你兔哥'; } } $a = new autofelix(); unset($a->name);
(Recommended tutorial: PHP video tutorial)
The above is the detailed content of Commonly used magic methods in PHP (summary sharing). For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

Dreamweaver Mac version
Visual web development tools

Atom editor mac version download
The most popular open source editor

WebStorm Mac version
Useful JavaScript development tools
