Home  >  Article  >  Backend Development  >  Detailed explanation of some common PHP magic method classes

Detailed explanation of some common PHP magic method classes

PHPz
PHPzOriginal
2023-03-31 09:08:17440browse

PHP is a very popular server-side scripting language that is widely used in web development and data processing. Magic methods in PHP refer to some special functions that are automatically called during the creation, destruction, assignment, etc. of objects to facilitate programmers to operate objects. This article will introduce some common PHP magic method classes.

  1. __construct() method

__construct() method is an object's construction method. When an object is created, this method is automatically called. In this method, some initialization operations can be completed, such as assigning values ​​to properties, connecting to the database, etc. Specific examples are as follows:

class Person{
    public $name;
    public $age;
    public function __construct($name,$age){
        $this->name = $name;
        $this->age = $age;
    }
}
$person = new Person('张三',18);
echo $person->name; //输出"张三"
echo $person->age; //输出18
  1. __destruct() method

__destruct() method is the destructor method of an object. When an object is destroyed, this method will automatically is called. In this method, some cleanup operations can be completed, such as closing the database connection. Specific examples are as follows:

class Person{
    public function __destruct(){
        echo "对象已经被销毁";
    }
}
$person = new Person();
unset($person); //销毁对象
//输出 "对象已经被销毁"
  1. __get() method and __set() method

__get() method and __set() method are used to access undefined Properties and assignments to undefined properties. Specifically, when accessing an undefined attribute, the system will automatically call the __get() method and pass the attribute name as a parameter; when assigning a value to an undefined attribute, the system will automatically call the __set() method. And pass in the attribute name and attribute value as parameters. Specific examples are as follows:

class Person{
    private $name;
    public function __get($property){
        if($property=='name'){
            return $this->name;
        }
    }
    public function __set($property,$value){
        if($property=='name'){
            $this->name = $value;
        }
    }
}
$person = new Person();
$person->name = "张三"; //赋值给未定义的属性
echo $person->name; //访问未定义的属性
//输出 "张三"
  1. __toString() method

__toString() method is used to return the string representation of an object. When an object is used for output, string operations, etc., the system will automatically call this method. Specific examples are as follows:

class Person{
    public $name;
    public $age;
    public function __construct($name,$age){
        $this->name = $name;
        $this->age = $age;
    }
    public function __toString(){
        return "姓名:".$this->name." 年龄:".$this->age;
    }
}
$person = new Person('张三',18);
echo $person; //输出 "姓名:张三 年龄:18"
  1. __clone() method

__clone() method is used to copy an object. When an object is cloned, the system automatically calls this method. In this method, operations such as copying or initializing some properties can be completed. Specific examples are as follows:

class Person{
    public $name;
    public $age;
    public function __construct($name,$age){
        $this->name = $name;
        $this->age = $age;
    }
    public function __clone(){
        $this->name = "克隆对象";
        $this->age = 0;
    }
}
$person1 = new Person('张三',18);
$person2 = clone $person1;
echo $person1->name; //输出 "张三"
echo $person2->name; //输出 "克隆对象"
echo $person1->age; //输出 18
echo $person2->age; //输出 0

In addition to the above magic methods, there are other magic methods in PHP, such as __isset() method, __unset() method, etc. By using these magic methods, you can easily complete the operation and management of objects and improve development efficiency.

The above is the detailed content of Detailed explanation of some common PHP magic method classes. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn