Home Backend Development PHP Problem What are the magic methods in php?

What are the magic methods in php?

Jun 30, 2021 pm 01:55 PM
php magic method

Magic methods include: "__construct()", "__destruct()", "__set()", "__get()", "__isset()", "__unset()", "__sleep() ", "___wakeup()", "__call()" and so on.

What are the magic methods in php?

The operating environment of this tutorial: windows7 system, PHP7.1 version, DELL G3 computer

php magic (skill ) Method

In object-oriented programming, PHP provides a series of magic methods. These magic methods provide a lot of convenience for programming, and their role in PHP is very important. Magic methods in PHP usually start with __ (two underscores) and do not need to be explicitly called but are automatically called under certain conditions.

##__call()Automatically called when calling a non-existent method__callStatic ()Automatically called when calling a non-existent static method__toString()Automatically called when converting an object into a string__invoke()Automatically called when trying to call an object as a method__set_state() Automatically called when using the var_export() function, accepting an array parameter__clone()Automatically called when using clone to copy an object__debugInfo()Automatically called when using var_dump() to print object information

The following is a brief introduction to several commonly used magic methods:

1. __set() method

will be automatically called when assigning values ​​to undefined or invisible class attributes in the current environment. __set() method. The syntax format for defining this method is as follows:

public function __set($key, $value){
    ... ... ;
}
Copy after login

Among them, the parameter $key is the name of the variable to be operated, and $value is the value of the variable $key.

2. __get() method

When calling or obtaining undefined or invisible class attributes in the current environment, the __get() method will be automatically called to define the syntax format of the method. As follows:

public function __get($name){
    ... ... ;
}
Copy after login

The parameter $name is the name of the variable to be operated.

3. __isset() method

When the isset() or empty() function is used outside the class on an attribute that is inaccessible or does not exist in the class, __isset() will be automatically called. method, the syntax format of this method is as follows:

public function __isset($name){
    ... ... ;
}
Copy after login

The parameter $name is the name of the attribute to be accessed.

isset() function can check whether a variable exists and is not NULL, passing in a variable as a parameter, if the passed in variable exists, it returns true, otherwise it returns false.

empty() function can check whether a variable is empty. It also needs to pass in a variable as a parameter. If the variable does not exist, or the value of the variable is equal to FALSE, then the variable will be considered not to exist.

Public members in a class can be accessed outside the class, but private members cannot be accessed outside the class. In other words, we can use the isset() or empty() function to check whether the public properties in the class exist, but these two functions are invalid for the private properties in the class.

If we want to use the isset() or empty() function to detect the private properties in the class, we only need to add an __isset() method to the class. When used outside the class isset() or empty() function, the __isset() method in the class will be automatically called.

4. __unset() method

When the unset() function is used outside the class on an attribute that is inaccessible or does not exist in the class, the __unset() method will be automatically called. This method The syntax format is as follows:

public function __unset($name){
    ... ... ;
}
Copy after login

The parameter $name is the name of the attribute to be accessed.

Let’s take a look at the unset() function first. The function of the unset() function is to delete the specified variable. One or more variables need to be passed in as parameters. In addition, the function has no return value.

Similarly, we can also use the unset() function to delete member attributes in the class outside the class. Similar to the __isset() method introduced above, if you want to delete the public attributes in the class, you can directly use the unset() function; if you want to delete the private attributes in the class, you need to add an __unset() to the class. method.

5. __call() method

When calling an inaccessible or non-existent method in the class, the __call() method will be called. The syntax format of this method is as follows:

public function __call($name, $arguments){
    ... ... ;
}
Copy after login

where $name is the name of the method to be called, and $arguments is an array of parameters passed to $name.

When the called method does not exist, the __call() method will be automatically called, and the program will continue to execute, thus avoiding program termination caused by an error when the calling method does not exist.

6. __clone() method

You can use the clone keyword to copy an object. When the copy is completed, if the __clone() method is defined, the newly created object (the object generated by copying ), the __clone() method will be automatically called, through which we can do some necessary operations. The syntax format of the __clone() method is as follows:

public function __clone(){
    ... ... ;
}
Copy after login

This function does not require parameters to be passed in.

Recommended learning: "PHP Video Tutorial"

Magic method Function
__construct() Automatically when instantiating a class Call
__destruct() Automatically call when the class object is used
__set() Automatically called when assigning a value to an undefined property
__get() Automatically called when an undefined property is called
__isset() Automatically called when using isset() or empty() function
__unset() Automatically called when using unset()
__sleep() Automatically called when serializing using serialize
__wakeup() Use unserialize Automatically called when deserializing

The above is the detailed content of What are the magic methods in php?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

To work on file upload we are going to use the form helper. Here, is an example for file upload.

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

CakePHP Quick Guide CakePHP Quick Guide Sep 10, 2024 pm 05:27 PM

CakePHP is an open source MVC framework. It makes developing, deploying and maintaining applications much easier. CakePHP has a number of libraries to reduce the overload of most common tasks.

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

See all articles